除了leader和follow模式之外,还有第三种模式:observer模式。
observer和follower在一些方面是一样的。详细点来讲,他们都向leader提交proposal。
但与follower不同,observer不参与投票的过程。它简单的通过接收leader发过来的INFORM消息来learn已经commit的proposal。
因为leader都会给follower和observer发送INFORM消息,所以它们都被称为learner。
使用观察者设置Zookeeper全员非常简单,只需要在原来的配置文件上改两个地方。第一,每个节点的配置文件设置为观察者,必须放置这一行:
peerType=observer
这一行告诉Zookeeper的服务是一个观察者。第二,在每个服务配置文件里,必须在观察者定义行添加:observer。例如:
server.1:localhost:2181:3181:observer
这个告诉其他服务server.1是一个观察者,并且他们不需要期望他选举。这是你在Zookeeper集群中添加观察者需要的所有配置。现在你可以连接到它好像是一个普通的追随者。尝试一下,通过运行:
bin/zkCli.sh -server localhost:2181
这里的localhost:2181是每个配置文件里指定的观察者的hostname和端口号。你应该查看一个命令行提示,通过类似于ls的操作查询Zookeeper服务。
本文出自 “自动化运维” 博客,请务必保留此出处http://zdhyw.blog.51cto.com/7744211/1901946
原文:http://zdhyw.blog.51cto.com/7744211/1901946