Open wittyResry opened 6 years ago
zookeeper本身提供leader选举机制,大概的思路是所有节点创建临时有序的znode然后监听所有节点的变化情况,获取最小序号和自己创建的序号作比较,如果自己为最小则当选为leader。当leader主动删除节点或者宕机后,临时节点消失,该变化会被其他存活的节点获取到从而触发第二次的leader选举,依次类推。实际上zookeeper提到的很多recipes curator(对zookeeper api很好的封装)都提供了很好的实现(除了两阶段提交),同时基于底层的zookeeper api开发应用需要考虑的东西很多,curator对这些都提供了封装,所以如果要编写zookeeper应用推荐使用curator。
leader应用的场景很广泛,curator提供了两种不同的选举实现,一种是轮询做leader,另外一种是永久获取leader权直到节点退出,两种选举实现可以在不同的集群应用中发挥作用。
zookeeper集群结构:
高可用性
配置管理
Watch机制
Leader选举
zookeeper本身提供leader选举机制,大概的思路是所有节点创建临时有序的znode然后监听所有节点的变化情况,获取最小序号和自己创建的序号作比较,如果自己为最小则当选为leader。当leader主动删除节点或者宕机后,临时节点消失,该变化会被其他存活的节点获取到从而触发第二次的leader选举,依次类推。实际上zookeeper提到的很多recipes curator(对zookeeper api很好的封装)都提供了很好的实现(除了两阶段提交),同时基于底层的zookeeper api开发应用需要考虑的东西很多,curator对这些都提供了封装,所以如果要编写zookeeper应用推荐使用curator。
leader应用的场景很广泛,curator提供了两种不同的选举实现,一种是轮询做leader,另外一种是永久获取leader权直到节点退出,两种选举实现可以在不同的集群应用中发挥作用。