Zookeeper的深入分析


运?时状态分析 在ZAB协议的设计中,每个进程都有可能处于如下三种状态之?   · LOOKING:Leader选举阶段。   · FOLLOWING:Follower服务器和Leader服务器保持同步状态。   · LEADING:Leader服务器作为主进程领导状态。   服务器?? Leader Leader服务器是Zookeeper集群?作的核?,其主要?作有以下两个:   (1) 事务请求的唯?调度和处理者,保证集群事务处理的顺序性。   (2) 集群内部各服务器的调度者。   Follower Follower服务器是Zookeeper集群状态中的跟随者,其主要?作有以下三个:   (1) 处理客户端?事务性请求(读取数据),转发事务请求给Leader服务器。   (2) 参与事务请求Proposal的投票。   (3) 参与Leader选举投票。 请求链路图 Observer基本和follower类似 SyncRequestProcessor处理器也组装上去,但是在实际运?过程中,Leader服务器不会将事务请求的 投票发送给Observer服务器   服务器启动     1. 配置?件解析   2. 初始化数据管理器   3. 初始化?络I/O管理器   4. 数据恢复   5. 对外服务 启动流程图

 

 leader选举 Zookeeper集群中的?台服务器出现以下两种情况之?时,需要进?Leader选举。   (1) 服务器初始化启动。   (2) 服务器运?期间?法和Leader保持连接。   由于是初始情况,Server1(假设myid为1)和Server2假设myid为2)都会将??作为Leader服务器来 进?投票,每次投票会包含所推举的服务器的myid和ZXID,使?(myid, ZXID)来表示,此时Server1的 投票为(1, 0),Server2的投票为(2, 0),然后各?将这个投票发给集群中其他机器 优先检查ZXID。ZXID?较?的服务器优先作为Leader。 如果ZXID相同,那么就?较myid。myid较?的服务器作为Leader服务器。 投票统计过半原则当选。

相关