Zookeeper原理
程序员文章站
2022-06-01 17:47:09
...
zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,
它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。
最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户
配置zookeeper
-
上传zookeeper.jar包
-
解压
-
修改 zookeeper下的zoo.cfg
dataDir= 设置自己的目录 -------是数据目录路径
配置节点: server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888 -
2888和3888是端口号
-
2888:是对外通信的端口号
-
3888:是leader挂掉之后 重新选举leader时候提供的对外的端口号
(特别注意:linux中的防火墙必须关掉,否则zookeeper集群启动不成功)
由于zookeeper是选举机制所以节点最好是2N+1个
原子广播
广播模式:已经选举的出来的leader,开始对外提供服务---原子广播
通过投票确定某一件事能不能做(过半原则—zookeeper最好是奇数)
提交请求到follower,follower会将请求发送给leader
leader将请求下发给所有的follower,F来判断,并将结果返回给L
L将请求写入的文件分发到所有的follower------(最终一致性–及时在写入的过程中有节点连接不上,当恢复的时候还会把节点上写入数据)
和zab协议
广播模式–选举出来leader,对外提供服务
恢复模式—选举leader,也就是4大状态存在
zookeeper中的角色
角色 任务 状态
1. leader 领导者 发起请求,并且投票 leading
2. follower 跟随者 响应leader的请求并发起投票 following
3. observer 监听者 监视leader 并将leader的情况汇报 不参与投票 observering
looking (leader挂掉或者刚启动集群)