zookeeper是一个高效、稳定的分布式协同服务框架,是hadoop中的一个子项目。zookeeper可以提供统一命名、配置管理、集群选举等功能,由于其原子性的广播协议,我们还可以使用它做分布式锁服务。
我们先来看下zookeeper集群的物理拓扑结构:
在这个拓扑图中,共有三种角色:leader、follower、observer,其中follower和observer又可统称为learner。我们分别介绍着三种角色的职责:
leader:接受来自follower的写请求,并下发投票命令到follower;
follower:接受来自客户端的写请求,并将请求提交至leader进行裁决;
observer:
下面我们介绍zookeeper的选举过程: