标签:开发 lead 标准 自己 状态 适合 配置文件 统一 数据恢复
Zookeeper是用Java开发的一个分布式协调服务,就是为用户的分布式应用程序提供协调服务。应用程序可以在Zookeeper集群上注册当前的节点数据,当节点数据发生更改时,ZooKeeper还会通知应用程序。
全新集群
数据恢复
那么,初始化的时候,是按照上述的说明进行选举的,但是当zookeeper运行了一段时间之后,有机器down掉,重新选举时,选举过程就相对复杂了。
需要加入数据id、leader id和逻辑时钟。
数据id:数据新的id就大,数据每次更新都会更新id。
Leader id:就是我们配置的myid中的值,每个机器一个。
逻辑时钟:这个值从0开始递增,每次选举对应一个值,也就是说: 如果在同一次选举中,那么这个值应该是一致的 ; 逻辑时钟值越大,说明这一次选举leader的进程更新.
选举的标准就变成:
1、逻辑时钟小的选举结果被忽略,重新投票
2、统一逻辑时钟后,数据id大的胜出
3、数据id相同的情况下,leader id大的胜出
根据这个规则选出leader。
标签:开发 lead 标准 自己 状态 适合 配置文件 统一 数据恢复
原文地址:http://www.cnblogs.com/wesly186/p/8101b5a226c680f6377c9c822a508bb9.html