ZooKeeper系列之(十六):结束篇

ZooKeeper的设计原理讲到这基本就结束了,有兴趣的朋友能够下源代码看看,ZooKeeper的源代码写的很好,很轻量级,是入门分布式系统的绝佳材料。分布式

最后再简单总结一下吧:性能

(1)ZooKeeper是什么?设计

ZooKeeper是轻量级的分布式一致性存储集群系统,在集群间的各个机器上维护一致性的数据存储,某些机器宕机不会影响总体集群的正常服务。server

(2)它是如何工做的blog

集群有1个leader和多个follower组成,至于Observer笔者就不单独说了。集群启动的时候每台机器都是初始化状态,这是启动选举过程,选举出一个leader,选举以后剩余的机器就是follower,而后follower向leader发送注册信息,并从leader获取leader的存储数据,保持和leader数据一致性。而后集群就能够正常服务了。get

对于读请求,都是从本地返回数据给客户端,所不一样的是写请求。it

若是写请求REQUEST发送给leader,则leader会维护一个临时状态,并将写请求做为PROPOSAL包发给全部的follower,而后follower写WAL日子并回复ACK包给leader,leader收集到半数以上的ACK则认为集群已经记录下这个写请求,这时候leader发送COMMIT包给follower们,follower收到COMMIT以后让写请求的数据在本地生效。这样leader和follower都保存同一份写请求数据并生效。入门

若是写请求REQUEST发送给follower,则follower会转发给leader,而后leader一样开始上述过程。集群

ZooKeeper的总流程大体就是这样了,其实还有一款分布式存储系统叫Etcd,速度更快性能更好,有兴趣的朋友能够看笔者的电子书连接:原理

https://www.ituring.com.cn/book/2427

相关文章
相关标签/搜索