除了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服務。