首页 > 代码库 > zookeeper基本原理

zookeeper基本原理

zookeeper基本原理

基本原理

技术分享

server很多,有主从之分,不过有一个leader,其他是follower,

每个server,在内存中存有一份数据,启动时,将选举出一个leader,根据poxos协议选举

leader负责处理数据更新操作,用到zab协议

一个更新操作成功的标志,大多数server在内存,成功修改数据(一个有5个,有3个写成功了)

zookeeper角色

技术分享

怎么知道大多数写成功了,用到领导者发起投票,领导者收到3个投票,就是大部分写成功了。

学习者(learner)分为跟随者(follower),观察者(ObServer)
高可用,比如两个节点挂了,还是可以对外提供服务,为了支持更多客户端,需要增加server

server增多,会导致投票延迟增大,因为投票需要半数以上的投票成功,才认为是成功的

假设其中一个Server比较磨叽慢网络慢,zookeeper会权衡伸缩性和吞吐率,引入了一个observer

好处,不参与投票过程,只同步领导者状态,接收client连接,请求转发给领导者,这样follower跟领导者连接就少了,这样就不会影响,因为高并发,负载过高而挂掉,所以说observer可以分担一部分压力,当加入更多的observer之后,可以提gao整个zookeeper的伸缩性

稿源:勤快学QKXue.NET

扩展阅读:

zookeeper基本原理
http://qkxue.net/info/41867/zookeeper
zookeeper原理(转)
http://qkxue.net/info/47138/zookeeper
Zookeeper实战之单机模式
http://qkxue.net/info/50082/Zookeeper
Zookeeper是什么?
http://qkxue.net/info/54185/Zookeeper
zookeeper参考
http://qkxue.net/info/54839/zookeeper

zookeeper基本原理