摘要
前面讲完了集群版leader选举之后,后面要完成leader和各个机器的数据同步,以及leader和各机器的服务启动,
在这里简单描述一下服务器的角色,以及服务器之间,消息通信的类型。方便后文的理解。
主要讲解内容
服务器角色
Leader
Learner
Follower
Observer
消息类型
数据同步型
服务器初始化型
请求处理型
会话管理型
服务器角色
Leader
Leader服务器是Zookeeper集群工作的核心,其主要工作如下
(1) 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。
(2) 集群内部各服务器的调度者。
Learner
主要分为Follower和Observer
Follower
Follower是Zookeeper集群的跟随者,其主要工作如下
(1) 处理客户端非事务性请求(读取数据),转发事务请求给Leader服务器。
(2) 参与事务请求Proposal的投票。
(3) 参与Leader选举投票。
Obeserver
Observer充当观察者角色,观察Zookeeper集群的最新状态变化并将这些状态同步过来,其对于非事务请求可以进行独立处理,对于事务请求,则会转发给Leader服务器进行处理。Observer不会参与任何形式的投票,包括事务请求Proposal的投票和Leader选举投票。
消息类型
这一段是直接引用refer的
Zookeeper的消息类型大体分为数据同步型、服务器初始化型、请求处理型和会话管理型。
数据同步型
指在Learner和Leader服务器进行数据同步时,网络通信所用到的消息,通常有DIFF、TRUNC、SNAP、UPTODATE。
服务器初始化型
指在整个集群或是某些新机器初始化时,Leader和Learner之间相互通信所使用的消息类型,常见的有OBSERVERINFO、FOLLOWERINFO、LEADERINFO、ACKEPOCH和NEWLEADER五种。
请求处理型
指在进行清理时,Leader和Learner服务器之间互相通信所使用的消息,常见的有REQUEST、PROPOSAL、ACK、COMMIT、INFORM和SYNC六种。
会话管理型
指Zookeeper在进行会话管理时和Learner服务器之间互相通信所使用的消息,常见的有PING和REVALIDATE两种。
思考
Learner的意义
非leader的机器都可以称为Learner,在代码中Learner是Follower和Observer的父类
refer
http://www.cnblogs.com/leesf456/p/6139266.html
《paxos到zk》 7.7节
网友评论