zab

请不要叫我菜鸡2 个月前
分布式·后端·区块链·raft·共识算法·zab
分布式——一致性模型与共识算法一致性问题是分布式领域最为基础也是最重要的问题。一般来讲,分布式系统中的一致性按照对一致性要求的不同,主要分为强一致性,弱一致性这两大类,前者是基于 safety 的概念,后者是基于 liveness 的概念。
Hello-Brand7 个月前
分布式·raft·cap·分布式算法·paxos·zab
架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)之前的文章中,我们介绍过分布式事务的基础知识,也了解了分布式场景下常见一致性问题和解决方案,对分布式锁和CAS模式有一定的了解,有兴趣的同学可以通过下面链接到作者的两篇相关文章。
coffee_babe7 个月前
java·分布式·一致性·共识算法·一致性算法·zab
分布式与一致性协议之ZAB协议(四)首先我们来看看ZooKeeper是如何实现成员身份的? 在ZooKeeper中,成员状态是在QuorumPeer.java中实现的,为枚举型变量
coffee_babe7 个月前
java·分布式·一致性·一致性算法·zab
分布式与一致性协议之ZAB协议(三)众所周知,系统在运行中不可避免会出现各种各样的问题,比如进程崩溃了、服务器死机了,这些问题会导致很严重的后果,让系统没办法继续运行。在ZAB协议中,写请求是必须在主节点上处理的,而且提案的广播和提交也是由主节点来完成的。既然主节点那么重要,如果它突然崩溃(宕机)了,该怎么办呢? 答案是选举出新的领导者(也就是新的主节点)。 在我看来,领导者选举关乎节点故障容错能力和集群可用性,是ZAB协议非常核心的设计之一。想象一下,如果没有领导者选举,主节点故障了,那么整个集群将无法写入,这将是极其严重的灾难性故障。理
coffee_babe7 个月前
java·分布式·一致性·一致性算法·zab
分布式与一致性协议之ZAB协议(八)相比写操作,读操作的处理要简单很多,因为接收到度请求的节点只需要查询本地数据,然后响应数据给客户端就可以了。读操作的核心流程如图所示。
coffee_babe7 个月前
java·分布式·一致性·一致性算法·zab
分布式与一致性协议之ZAB协议(七)你应该有这样的体会,如果你想了解一个网络服务,执行的第一个功能肯定是写操作,然后才会执行读操作。比如,你要了解ZooKeeper,那么肯定会在zkClient.sh命令行中执行写操作(比如create /geekbang 123)写入数据,然后再执行读操作(比如get /geekbang)查询数据。这样一来,你才会直观地理解ZooKeeper的使用方法。
coffee_babe7 个月前
java·分布式·一致性·共识算法·zab
分布式与一致性协议之ZAB协议(六)成员发现是通过跟随者和领导者交互来完成的,目标是确保大多数节点对领导者的关系没有异议,也就是确立领导者的领导地位。成员发现的实现流程如图所示。
coffee_babe7 个月前
java·分布式·一致性·共识算法·zab
分布式与一致性协议之ZAB协议(五)如果我们想把ZAB集群恢复到正常状态,那么新领导者就必须确立自己的领导关系,成为唯一有效的领导者,然后作为主节点"领导"各备份节点一起处理读写请求
coffee_babe8 个月前
java·分布式·一致性·一致性算法·zab
分布式与一致性协议之ZAB协议(二)如果用一句话解释ZAB协议到底是什么,我觉得它是能保证操作顺序性的、基于主备模式的原子广播协议。 接下来,还是以指令X、Y为例具体演示一下,帮助你更好地理解为什么ZAB协议能实现操作的顺序性(为了演示,我们假设节点A为主节点,节点B、C为备份节点)。 首先,在ZAB协议中,写操作必须在主节点(比如节点A)上执行。如果客户端访问的节点是备份节点(比如节点B),则备份节点会将写请求转发给主节点,如图所示。 接着,当主节点接收到写请求后,它会基于写请求中的指令(也就是X、Y)来创建一个提案(Proposal),