ZooKeeper总结以及应用场景和集群搭建 (2)

zookeeper通过二阶段提交来保证集群中数据的一致性,因为只需要收到过半的ACK就可以提交事务,所以zookeeper的数据并不是强一致性。

选举发生的时机

Leader发生选举有两个时机:

一个是服务启动的时候当整个集群都没有leader节点会进入选举状态,如果leader已经存在就会告诉该节点leader的信息,自己连接上leader,整个集群不用进入选举状态。

还有一个就是在服务运行中,可能会出现各种情况,服务宕机、断电、网络延迟很高的时候leader都不能再对外提供服务了,所有当其他follower通过心跳检测到leader失联之后,集群也会进入选举状态。

选举机制(机制)

zookeeper默认使用majority quorums(过半机制)选举leader:可用节点数量 > 总节点数量/2

选举流程

所有节点第一票先选举自己当leader,将投票信息广播出去;

从队列中接受投票信息;

按照规则判断是否需要更改投票信息,将更改后的投票信息再次广播出去;

判断是否有超过一半的投票选举同一个节点,如果是选举结束根据投票结果设置自己的服务状态,选举结束,否则继续进入投票流程。

选举后怎么进行数据同步 脑裂

在集群中,由于网络分区节点之间通信不可达的情况时,集群中出现两个或多个master(leader)的情况。

zk官网判断集群是否可用的文章:

集群搭建-------Zookeeper集群节点数量为什么要是奇数个?

https://www.cnblogs.com/ysocean/p/9860529.html

zookeeper选举的规则:leader选举,要求 可用节点数量 > 总节点数量/2

1、防止由脑裂造成的集群不可用。

2、在容错能力相同的情况下,奇数台更节省资源。

Zookeeper 实现分布式锁

https://mp.weixin.qq.com/s/ZqQHWLfVD1Rz1agmH3LWrg
https://blog.csdn.net/crazymakercircle/article/details/85956246

Zookeeper FQA

https://mp.weixin.qq.com/s/YawG0GqznDHaiHXZuTsCjA
https://www.w3cschool.cn/zookeeper/
https://www.cnblogs.com/felixzh/p/5869212.html

主流微服务注册中心浅析和对比

https://my.oschina.net/yunqi/blog/3040280

分布式一致性算法-Paxos、Raft、ZAB、Gossip

https://zhuanlan.zhihu.com/p/130332285
https://zhuanlan.zhihu.com/p/147691282
https://www.jianshu.com/p/2bd30b3ac5f7

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsxzp.html