![](https://img-blog.csdnimg.cn/20201224085631156.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ZooKeeper
文章平均质量分 95
ZooKeeper详解
邋遢的流浪剑客
成长中的基础架构攻城狮
展开
-
ZAB协议详解
ZooKeeper使用了一种称为ZooKeeper Atomic Broadcast(ZAB,ZooKeeper原子消息广播协议)的协议作为其数据一致性的核心算法,ZAB协议是为分布式协调服务ZooKeeper专门设计的一种能保证操作顺序性的、基于主备模式的原子广播协议1、ZAB中的三个角色ZAB支持3种成员身份(领导者、跟随者、观察者)领导者(Leader):作为主节点,在同一时间集群只会有一个领导者。所有的写请求都必须在领导者节点上执行跟随者(Follower):作为备份节点,集群可以有多个跟原创 2021-05-29 10:34:17 · 1434 阅读 · 0 评论 -
使用ZooKeeper实现分布式队列、分布式锁和选举详解
ZooKeeper源码的zookeeper-recipes目录下提供了分布式队列、分布式锁和选举的实现(GitHub地址:https://github.com/apache/zookeeper/tree/master/zookeeper-recipes)。本文主要对这几种实现做实现原理的解析和源码剖析:1、分布式队列使用路径为/queue的znode下的节点表示队列中的元素。/queue下的节点都是顺序持久化znode。这些znode名字的后缀数字表示了对应队列元素在队列中的位置。znode名字后缀数字原创 2021-05-19 08:51:43 · 570 阅读 · 4 评论 -
分布式一致性算法(二):Paxos算法
1、Paxos是什么Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一2、问题产生的背景在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。Paxos算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以...转载 2019-08-17 09:20:05 · 286 阅读 · 0 评论 -
分布式一致性算法(一):二阶段提交与三阶段提交
为了解决分布式一致性问题,产生了不少经典的分布式一致性算法,下面将介绍其中的2PC和3PC。2PC即Two-Phase Commit,译为二阶段提交协议。3PC即Three-Phase Commit,译为三阶段提交协一、2PC1、协议说明阶段一:提交事务请求1)、事务询问协调者向所有的参与者发送事务内容,询问是否可以执行事务提交操作,并开始等待各参与者的响应2)、执行事务各参与者节点...原创 2019-08-16 16:39:54 · 1240 阅读 · 0 评论 -
ZooKeeper详解(六):ZooKeeper的Leader选举
七、ZooKeeper的Leader选举1、Leader选举概述Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举服务器初始化启动服务器运行期间无法和Leader保持连接下面就两种情况进行分析讲解1)、服务器启动时期的Leader选举若进行Leader选举,则至少需要两台机器,这里选取3...原创 2019-08-19 20:32:59 · 1091 阅读 · 0 评论 -
ZooKeeper详解(五):ZooKeeper系统模型
六、ZooKeeper系统模型1、数据模型1)、树ZNode是ZooKeeper中数据的最小单元,每个ZNode上都可以保存数据,同时还可以挂载子节点,因此构成了一个层次化的命名空间,称之为树在ZooKeeper中,每一个数据节点都被称为一个ZNode,所有ZNode按层次化结构进行组织,形成一棵树。ZNode的节点路径标识方式和Unix文件系统路径非常相似,都是由一系列使用/进行分割的...原创 2019-08-18 15:47:17 · 574 阅读 · 0 评论 -
ZooKeeper详解(四):ZooKeeper的ZAB协议
五、ZooKeeper的ZAB协议ZooKeeper使用了一种称为ZooKeeper Atomic Broadcast(ZAB,ZooKeeper原子消息广播协议)的协议作为其数据一致性的核心算法,ZAB协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的原子广播协议ZAB协议的核心是定义了对于那些会改变ZooKeeper服务器数据状态的事务请求的处理方式,即:所有事务请求必...原创 2019-08-13 15:08:45 · 407 阅读 · 0 评论 -
ZooKeeper详解(三):ZooKeeper的典型应用场景
四、ZooKeeper的典型应用场景1、数据发布/订阅数据发布/订阅系统,即所谓的配置中心,就是发布者将数据发布到ZooKeeper的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中式管理和数据的动态更新发布/订阅系统一般有两种设计模式,分别是推(Push)模式和拉(Pull)模式。在推模式中,服务端主动将数据更新发送给所有订阅的客户端;而拉模式则是由...原创 2019-08-12 22:01:04 · 1830 阅读 · 0 评论 -
ZooKeeper详解(二):Java客户端API操作ZooKeeper
三、Java客户端API操作ZooKeeper引入依赖: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <vers...原创 2019-08-04 11:36:00 · 1142 阅读 · 0 评论 -
ZooKeeper详解(一):ZooKeeper介绍、部署、客户端脚本操作
一、ZooKeeper介绍1、ZooKeeper是什么ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZooKeeper可以保证如下分布式一致性特性1)顺序一致性从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到ZooKee...原创 2019-08-04 10:12:25 · 1068 阅读 · 0 评论