Leader 或Follower 或Observer
比如针对事务决议的表决,通过投票表决。过半同意事务就更新。
如果从性能角度来看,参与投票的机器越少越好。(但至少满足过半投票人数)
5台机器最多有2个观察者,3台机器最多有1个观察者
所以zookeeper引入了observer观察者的状态。

observer观察者的特点:
1.不参与投票
2.观察和监听投票结果,然后去更新状态。
如何来设置观察者:

实现步骤:
1.在要变成观察者的机器的zk的配置文件
加:peerType=observer
server.3=ip:2888:3888:observer
2.更改其他机器的配置文件,加:
server.3=ip:2888:3888:observer

引入观察者,一是通过减少投票机器数量,从而提高性能。
此外,也可以从降低每一台zk服务器的负载压力角度来看,能够降低负载压力。
因为观察者如果宕机,影响也不大,因为不是核心人员。
但是注意,引入观察者,从性能角度来看,是好东西。但是如果从集群高可用的角度来看,要 慎用。(5台机器,2个观察者,1个follow挂掉,此时不满足过半统一机制,选不出leader,集群无法启动)
此外再注意,比如3台机器,把两台配置成观察者,这么做是不行的,因为不满足过半机制, 所以选不出leader,导致集群启动不了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐