zookeeper主要用来做分布式协调服务,通过利用Ephemeral 和 Sequential特性可以很容易实现集群的管理。
Ephememal 的路径在节点退出后自动失效
Sequential 由zookeeper按照顺序分配路径名
一主一备
第一个节点为主节点,后一个节点监听前一个节点。
一主多备
主要是实现多备的选举。
每个节点分别创建Ephemeral,Sequential 路径:/cluster_leader_fellows/n_<i>,i为生成的序号,序号最小的节点为leader
为了避免同时监听一个节点所带来的羊群效应,除leader外其他的每个节点分别监听序号比自己小的节点。当监听节点退出时,该节点成为leader。
多主一备
假设节点数目为n,最后一个节点为备用节点,监听其他所有节点。如果有节点退出,则备用节点变为主节点。