您好,登錄后才能下訂單哦!
這篇文章主要介紹“Zookeeper的觀察者是什么意思”,在日常操作中,相信很多人在Zookeeper的觀察者是什么意思問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Zookeeper的觀察者是什么意思”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
閱讀本文之前,推薦閱讀:
基于zookeeper leader選舉方式一
Kafka源碼系列之源碼分析zookeeper在kafka的作用
回顧一下Zookeeper的運行時的角色。
觀察者的設(shè)計是希望能動態(tài)擴展zookeeper集群又不會降低寫性能。
雖然通過讓客戶端直接連接到集群的投票成員,ZooKeeper也表現(xiàn)得非常好,但是這種架構(gòu)使得很難擴展到有大量的客戶端情況。問題是,隨著我們添加更多投票成員,寫入性能也會隨著下降。這是因為寫操作需要(通常)需要集群中至少一半的節(jié)點投票達成一致,因此隨著更多投票者的加入,投票的成本會顯著增加。
這里引入一種新zookeeper節(jié)點類型,叫做觀察者,觀察者的引入幫助解決了上面的問題同時大大增加了zookeeper的動態(tài)擴展能力。觀察者不參與投票,只聽取投票結(jié)果。除了這個簡單的區(qū)別,Observers的功能與Followers完全相同 - 客戶端可以連接到它們并向它們發(fā)送讀寫請求。Observer會像follower一樣將消息轉(zhuǎn)發(fā)給leader,但是Observer只會聽取投票結(jié)果,不參與投票。由于這點,我們可以增加任意數(shù)量的Observer,同時不會影響我們集群的性能。
Observer還有其它優(yōu)點。因為他們不投票,所以他們不是ZooKeeper集群的重要組成部分。 因此,它們可以失敗,或者與集群斷開連接,而不會損害ZooKeeper服務(wù)的可用性。對用戶的好處是Observer相比Follower來說更能通過不太可靠的網(wǎng)絡(luò)鏈接進行連接。實際上,Observers可用于與另一個數(shù)據(jù)中心的ZooKeeper服務(wù)器通信。Observers的客戶端可以快速讀取,因為所有讀取都在本地提供,并且寫入消耗最小的網(wǎng)絡(luò)流量,因為在沒有投票協(xié)議的情況下所需的消息數(shù)量較少。
在zookeeper集群中使用觀察者是非常簡單的,僅僅需要修改配置文件里的兩個配置即可。
在所有將會配置為zookeeper觀察者的節(jié)點,添加下面一行:
peerType=observer
這行配置告訴zookeeper這臺服務(wù)器將會成為一個Observers。
其次,在所有的服務(wù)器節(jié)點,在server定義處需要在末尾增加:observer。例如:
server.1:localhost:2181:3181:observer
這會告訴其它服務(wù)server.1是一個observer,不會參與投票。
運行下面的命令即可鏈接到集群:
bin/zkCli.sh -server localhost:2181
關(guān)于observer下面舉兩個使用案例。實際上,無論您希望擴展ZooKeeper集群的客戶端數(shù)量,還是希望將集群的關(guān)鍵部分與處理客戶端請求的負載隔離開來,Observers都是一個很好的架構(gòu)選擇。
1, 作為一個數(shù)據(jù)中心橋梁(datacenterbridge):為兩個數(shù)據(jù)中心構(gòu)建同一套zookeeper集群是會費很大勁的,因為數(shù)據(jù)中心之間網(wǎng)絡(luò)延遲的高度變化可能會導(dǎo)致故障檢測的誤報和集群分區(qū)。但是如果集群完全部署到一個數(shù)據(jù)中心,另一個數(shù)據(jù)中心用Observers,則分區(qū)問題不會出現(xiàn)了。Client依然可以看到和發(fā)布提案。
2,作為消息總線的鏈接:一些公司表示有興趣將ZK用作持久可靠消息總線的組件。 觀察者將為這項工作提供一個自然的集成點:插件機制可用于將觀察者看到的提案流附加到發(fā)布 - 訂閱系統(tǒng),同樣不加載核心集群。
到此,關(guān)于“Zookeeper的觀察者是什么意思”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。