随笔分类 - 分布式
分布式相关知识
    
摘要:Paxos协议 什么是Paxos Paxos协议说的是Paxos算法,Paxos算法是基于消息传递且具有高容错性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。 为描述Paxos算法,Lamport(Leslie Lamport)虚拟了一个叫做Paxos的 "希腊城邦" ,这个岛按照
        阅读全文
                
摘要:Gossip协议 什么是Gossip协议 Gossip协议,也叫 Epidemic协议(流行病协议)。原本用于分布式数据库中节点同步数据使用,后来被广泛应用于数据库复制、信息扩散、集群成员身份确认、故障探测等。 Gossip协议利用随机方式将信息传播到整个网络,并在一定时间内,使系统内所有节点的数据
        阅读全文
                
摘要:NWR协议 什么是NWR协议 NWR是一种在分布式存储系统中用于控制一致性级别的一种策略。在亚马逊的存储系统中,应用了NWR协议来控制一致性。 N:在分布式系统中,有多少分备份数据 W:代表一次成功的更新操作要求至少有W份写入成功 R:代表一次成功的读取操作至少有R份读取成功 原理 NWR值的不同组
        阅读全文
                
摘要:三阶段提交协议(3PC) 三阶段提交协议出现的背景:一致性协议中设计出了二阶段提交协议,但是2PC设计存在缺陷,于是有了三阶段提交协议。 三阶段提交协议 3PC,全称为“Three phase commit”,是2PC的改进版,将2PC的“事务提交过程”一分为二,并形成了canCommit、preC
        阅读全文
                
摘要:本文阐述了分布式系统中一些常见的协议以及原理分析。 <! more 分布式一致性协议 2022/03/01 校对完成 文章更新历史 2022/03/01 初稿。 两阶段提交协议(2PC) 两阶段提交协议 两阶段提交协议,简称2PC(2 prepare commit),是比较常见的解决分布式事务的方式
        阅读全文
                
摘要:BASE定理 CAP不可能同时满足,但是分区容错性对于分布式系统来说,是必须的。如果能够同时满足CAP就好了,于是出现了BASE理论。 BASE:全称Basically Availability(基本可用),Soft State(软状态),和Eventually Consistency(最终一致性)
        阅读全文
                
摘要:CAP定理 CAP定理介绍 CAP定理(CAP Theorem),又称布鲁尔定理(Brewer's throrem)。它指出,对一个分布式系统来说,不可能同时满足以下三点: | 选项 | 具体意义 | | | | | 一致性(Consistency) | 所有节点访问时都是同一份最新的数据副本 | 
        阅读全文
                
摘要:分布式理论 数据一致性 什么是分布式数据一致性 分布性数一致性,指的是数据在多份副本中存储时,各副本中的数据是一致的。 副本一致性 分布式系统中,数据往往会有读个副本。多个副本就需要保证数据一致性。这就带来了同步的问题,因为网络阻塞等因素,我们几乎无法保证可以同时更新所有机器中的所有数据,就会有数据
        阅读全文
                
摘要:本文分析了分布式架构应用广泛的理论。 <! more 分布式架构理论 2022/04/6 校对完成 文章更新历史 2022/04/02 初稿。 分布式架构介绍 什么是分布式系统 分布式系统是一个硬件或者软件分布在不同的网络计算机上,彼此之间仅仅通过消息传递通信和协调的系统。 通俗的理解,分布式系统是
        阅读全文
                
摘要:基于Netty实现RPC框架 底层使用 作为网络通讯框架,要求使用 实现一个简单的 框架,消费者和提供者约定协议和接口,消费者远程调用提供者的服务。 1、创建一个接口,定义抽象方法,用于消费者和提供者之间的约定。 2、创建一个提供者,该类需要监听消费者的请求,并按照约定返回数据。 3、创建一个消费者
        阅读全文
                
摘要:本文阐述了自定义rpc框架需要知道理论,并探索了rpc框架需要解决的问题,并且进行了传统的RMI方式的实现。 <! more 自定义RPC框架之分布式架构网络通信理论 2022/03/14 校对完成 文章更新历史 2022/03/14 初稿。 2022/03/25 修复图片问题。 分布式架构网络通信
        阅读全文
                
摘要:本文对Netty源码进行了深入剖析,透过Netty源码来理解Netty框架背后的原理。 <! more Nety源码剖析 下载netty源码 "https://github.com/netty/netty" 导入netty源码 直接IDEA导入Maven项目选择 即可。 新建demo项目 在exam
        阅读全文
                
摘要:本文阐述了Netty中常见的粘包和拆包问题,并深入分析了常用的解决方案。 <! more Netty高级进阶之Netty中的粘包和拆包的解决方案 粘包和拆包简介 粘包和拆包是TCP网络编程中不可避免的,无论是服务端和客户端,当读取或发送消息时,都需要考虑TCP底层的粘包/拆包机制。 TCP是个流协议
        阅读全文
                
摘要:本通过实战演练,学习了如何基于Netty的websocket开发一个网页聊天室。 <! more Netty高级进阶之基于Netty的Websocket开发网页聊天室 Webdocket简介 Websockt是一种在单个TCP连接上进行全双工通信的协议。 Websocket使客户端和服务端的数据交互
        阅读全文
                
摘要:本通过实战演练,学习了如何基于Netty开发一个HTTP服务器。 <! more Netty高级进阶之基于Netty的HTTP服务器开发 介绍 Netty的HTTP协议栈可靠性高,性能优异。相对于传统的Tomcat、Jetty等服务器,它更加轻量级和小巧,灵活性和定制型也更好。 功能需求 1. Ne
        阅读全文
                
摘要:本文通过实战演练,学习了如何使用Netty开发一个群聊天室。 <! more Netty高级进阶之基于Netty的群聊天室案例 案例 要求 1. 编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯 2. 实现多人群聊 3. 服务器端:可以监测用户上线,离线,并实现消息转发功能 4
        阅读全文
                
摘要:本文介绍了Netty编解码器的继承体系、常用API以及实际应用。 <! more netty高级 Netty编解码器 Java的编解码 1. 编码(Encode)称为序列化,它将对象序列为字节数组,用于网络传输、数据持久化或者其他用途。 2. 解码(Decode)称为反序列化,它将从网络、磁盘等读取
        阅读全文
                
摘要:本文通过一个Netty入门案例来阐述Netty的异步模型。 <! more netty入门案例 Netty是由JBOSS提供的一个开源框架,它的Maven坐标如下: Netty服务端编写 服务端实现步骤 1. 创建bossGroup线程组: 处理网络事件 连接事件 2. 创建workerGroup线
        阅读全文
                
摘要:本文介绍了Netty的核心API以及他们的使用。 <! more Netty核心API介绍 ChannelHandler及其实现类 API关系如下: 如果图片无法显示,请看这里 Netty开发中需要定义一个Handler类去实现ChannelHandler接口或其子类或其实现类,然后通过重写相关方法
        阅读全文
                
摘要:Netty线程模型 Netty的设计主要基于主从Reactor的多线程模式,并做了一定的改进。 1. 简单版Netty模型 BossGroup线程维护Selector,ServerSocketChannel注册到Selector上,只关注连接请求处理事件(主Reactor) 当接收到来自客户端的连接
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号