除了leader和follow模式以外,还有第三种模式:observer模式。ide
observer和follower在一些方面是同样的。详细点来说,他们都向leader提交proposal。命令行
但与follower不一样,observer不参与投票的过程。它简单的经过接收leader发过来的INFORM消息来learn已经commit的proposal。server
由于leader都会给follower和observer发送INFORM消息,因此它们都被称为learner。it
使用观察者设置Zookeeper全员很是简单,只须要在原来的配置文件上改两个地方。第一,每一个节点的配置文件设置为观察者,必须放置这一行:class
peerType=observer集群
这一行告诉Zookeeper的服务是一个观察者。第二,在每一个服务配置文件里,必须在观察者定义行添加:observer。例如:配置
server.1:localhost:2181:3181:observer配置文件
这个告诉其余服务server.1是一个观察者,而且他们不须要指望他选举。这是你在Zookeeper集群中添加观察者须要的全部配置。如今你能够链接到它好像是一个普通的追随者。尝试一下,经过运行:查询
bin/zkCli.sh -server localhost:2181端口
这里的localhost:2181是每一个配置文件里指定的观察者的hostname和端口号。你应该查看一个命令行提示,经过相似于ls的操做查询Zookeeper服务。