溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

五、zookeeper集群的選舉機制,監(jiān)聽原理,寫數(shù)據(jù)流程 和 節(jié)點類型,

發(fā)布時間:2020-07-23 21:45:24 來源:網(wǎng)絡(luò) 閱讀:572 作者:heypon 欄目:系統(tǒng)運維

zk集群的選舉機制:

半數(shù)機制:zk集群中的有半數(shù)以上的節(jié)點存活,zk就能正常運行,所以zk集群節(jié)點最好是奇數(shù)個。Zk集群中只有一個leader,其他都是follower

選舉機制:會經(jīng)過投票,票數(shù)大于半數(shù)以上的第一臺服務(wù)器,當(dāng)選leader

Server1  server2  server3  server4  server5
(id大的不給id小的投票,id小的會給id大的投票,server1-5,id依次增大)
5臺機器:server1開始投票,server1投自己,因為server1 id最小,所以server1只有一票
Server2:server2會投自己,server1也會投server2一票,server2 兩票
Server3:server3會投自己,server1和server2各自投server3一票,那么server3就三票,三票在半數(shù)以上(一共五臺機器),所以就選server3當(dāng)leader,
后邊的server4(4票)和server5(5票)雖然來都比server3票數(shù)多,但是server3是第一個票數(shù)大于半數(shù)以上的,所以就選擇server3當(dāng)leader

Zokeeper的監(jiān)聽的原理:(重點)

1)首先要有一個main()線程
2)在main()線程中創(chuàng)建zookeeper的客戶端,這時就會創(chuàng)建兩個線程,一個負責(zé)網(wǎng)絡(luò)連接通信(connect),一個負責(zé)監(jiān)聽(listen)
3)通過客戶端創(chuàng)建的connect線程將注冊的監(jiān)聽事件發(fā)送給zookeeper
4)在zookeeper server端的注冊監(jiān)聽器列表中將注冊的監(jiān)聽事件添加到列表中
5)Zookeeper監(jiān)聽到數(shù)據(jù)或路徑發(fā)生變化,就會將這個消息發(fā)送給listen線程
6)Listen線程調(diào)用內(nèi)部的process()方法,就是發(fā)生了數(shù)據(jù)變化之后怎么辦,這是程序員自己開發(fā)的。

如圖:

五、zookeeper集群的選舉機制,監(jiān)聽原理,寫數(shù)據(jù)流程 和 節(jié)點類型,

zk集群寫數(shù)據(jù)的流程

我們client想server發(fā)送寫請求的時候,是如何進行寫操作的,各個server的數(shù)據(jù)時如何保持一致的
五、zookeeper集群的選舉機制,監(jiān)聽原理,寫數(shù)據(jù)流程 和 節(jié)點類型,
理解: 是client給server發(fā)送寫請求的時候,會把這個請求轉(zhuǎn)發(fā)給leader,(寫請求follower做不了主,但是讀請求可以做主),leader會把這個寫請求發(fā)送給各個server并進行寫數(shù)據(jù)的操作,當(dāng)各個server數(shù)據(jù)寫完之后,會依次告知leader,當(dāng)leader收到半數(shù)以上的server是寫成功的話,leader就會認為這個寫操作成功了,然后leader 在告知各個server,這條寫操作成功了,然后就在將成功的消息發(fā)送給客戶端,進行顯示,這樣就會保持每個server都有副本,數(shù)據(jù)從而達到一致

Zk集群中znode的節(jié)點的類型

持久型(Persistent):客戶端和服務(wù)器斷開連接后,創(chuàng)建的鏈接不刪除
短暫型(Epheneral):客戶端個服務(wù)器斷開理解后,創(chuàng)建的節(jié)點自己刪除

持久節(jié)點包括
(1)持久化目錄節(jié)點:客戶端不zk斷開鏈接后,節(jié)點依舊存在
(2)持久化順序編號目錄節(jié)點:客戶端與zk斷開鏈接后,節(jié)點依舊存在 只是zk給該節(jié)點名稱進行順序編號。
序列號的作用:在分布式系統(tǒng)中,序列號可以被用于為所有的事件進行全局排序,這樣客戶端可以通過序列號判斷事件的順序

短暫型節(jié)點
(1)臨時目錄節(jié)點:客戶端與zk斷開鏈接后,刪除節(jié)點,最適合用于動態(tài)節(jié)點上下線
(2)臨時順序編號目錄節(jié)點:客戶端與zk斷開鏈接后會刪除該節(jié)點,只是命名的時候會添加順序編號

向AI問一下細節(jié)

免責(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)容。

AI