zookeeper 学习笔记

zookeeper 简单说 就是 一句原语   团结和睦一直对外

通过一个hadoop的namenode的HA例子引入,上小图


zookeeper     1注册  2监听事件  3 回调函数

值得注意的是回调函数是 zkfc自己的,是zkfc当初注册在zk cluster上的


client客户端发出一个请求给其中一个follower,follower没有权限处理,再汇报给leader,leader收到半数之上的同意后,正式通过请求,leader向所有follower发布,开始执行生效。其他client请求信息,follower会和leader做下sync,然后把结果返回给client。leader通过消息队列的方式确保所有follower都知道有一个事物生效了。每一个follower有一个自己的消息队列。最终一致。


选leader的过程

每个server都会有个 server_id(my_id)和zxid.

事务zxid优先级高于s_id.

传递性

过半机制



角色模型

集群状态
选举模式  安其内
广播模式  壤其外
Server状态
LOOKING:当前Server不知道leader是谁,正在搜寻
LEADING:当前Server即为选举出来的leader
FOLLOWING:leader已经选举出来,当前Server与之同步
主从分工
领导者(leader)
负责进行投票的发起和决议,更新系统状态
学习者(learner)
包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并向客户端返回结果,在选主过程中参与投票
Observer
可以接受客户端连接,将写请求转发给  leader,但observer不参加投票过程,只同步leader  的状态,observer的目的是为了扩展系统,提高读取  速度
客户端(client)

请求发起方





会话session


客户端与集群节点建立TCP连接后获得一个session
如果连接的Server出现问题,在没有超过Timeout时间时,可以连接其他节点
同一session期内的特性不变

Session是由谁来创建的?
Leader:产生一个唯一的session,放到消息队列,让所有server知道
(过半)






















猜你喜欢

转载自blog.csdn.net/paulfrank_zhang/article/details/80199893