observer的行为在大多数情况下与follower完全一致, 但是他们不参加选举和投票, 而仅仅接受(observing)选举和投票的结果.

observer可以在不影响写性能的情况下提升集群的读操作的性能,他只接受读请求,将写请求转发给leader。

配置方法:

1,设置为observer的节点必须显示的在zoo.cfg中进行如下配置

server.4=ip:2888:3888:observer

该配置的目的在于告知该集群内的所有zookeeper节点,他不参与投票,不要等他的投票响应,如果没有这个参数,其它节点不知道,会一直等待他的回应,可能造成选主失败

2,设置为observer的节点需要添加以下字段,其余节点不可以添加该字段,否则会导致无法选主

peerType=observer

也就是说,第一个配置是所有zookeeper集群的节点都需要设置的,而第二个配置则是仅在需要作为observer节点的机器上单独配置。