您好,登錄后才能下訂單哦!
【一、Zookeeper中的角色】
①領(lǐng)導(dǎo)者(leader)Leader服務(wù)器為客戶端提供讀寫服務(wù)。它是集群工作機制的核心,事務(wù)請求唯一調(diào)度者和處理者,保證集群事務(wù)請求處理的順序性。
②學(xué)習(xí)者(learner),學(xué)習(xí)者又分為跟隨者和觀察者:
跟隨者(follower)Follower服務(wù)器為客戶端提供讀服務(wù),參與Leader選舉過程,參與寫操作“過半寫成功”策略。處理非事務(wù)請求,轉(zhuǎn)發(fā)事務(wù)請求給領(lǐng)導(dǎo)者,同時參與投票。
觀察者(observer)Observer服務(wù)器為客戶端提供讀服務(wù),不參與Leader選舉過程,不參與寫操作“過半寫成功”策略。用于在不影響寫性能的前提下提升集群的讀性能。該服務(wù)不參與投票,可有可無的。
③客戶端(client)服務(wù)請求發(fā)起方。
【二、Zookeeper選舉】
上面提到的服務(wù)器角色是怎么產(chǎn)生的呢,就是通過選舉。
我這里,以一個例子的來形象說明選舉的過程:
1、咱們現(xiàn)在有10臺服務(wù)器,剛剛上線的服務(wù)器沒有任何數(shù)據(jù),嶄新的。咱們給它編個號:1,2,3,4,5,6,7,8,9,10,咱們呢把這10個服務(wù)器逐個都開機了哈。
2、在服務(wù)器啟動的時候啊,選舉就開始了。1號服務(wù)器啟動,先給自己投票,然后把自己的信息發(fā)出去,讓別的也投。但是呢其他服務(wù)器還沒有啟動啊,于是1號服務(wù)器就收不到反饋。心情很是失落,像筆者那年一樣,此時1號服務(wù)器就開始處于選舉狀態(tài)了(Looking左顧右盼的,焦急等待)。
3、接著2號服務(wù)器終于啟動了,它也給自己投票,但是2號服務(wù)器收到了1號服務(wù)器的反饋。2號服務(wù)器暫時勝出,票數(shù)還沒有大于半數(shù),2號也得處于選舉狀態(tài)。
4、同理哈,3號啟動,4號啟動,5號啟動,一直到6號。6號就不同了,它給自己先投了一票,然后收到了1,2,3,4,5的投票,6票超過半數(shù),他就是領(lǐng)導(dǎo)者。同時也先入為主了,后續(xù)7,8,9,10號無論票數(shù)怎樣,都不管了。
【三、Zookeeper各種角色作用】
1、Zookeeper中的請求
事務(wù)請求:
改變服務(wù)器狀態(tài)的請求。
非事務(wù)請求:
僅僅讀取數(shù)據(jù),不修改數(shù)據(jù)的請求
2、領(lǐng)導(dǎo)者Leader
領(lǐng)導(dǎo)者會根據(jù)不同的請求,進行不同的處理。
3、跟隨者Follower
①向領(lǐng)導(dǎo)者發(fā)送請求;
②接收領(lǐng)導(dǎo)者的消息并處理;
③接收客戶端請求,如果是寫入則需要發(fā)送給領(lǐng)導(dǎo)者進行半數(shù)投票;
④返回請求結(jié)果給客戶端。
4、觀察者Observer
除了不參與Leader選舉和Proposal投票外,與Follower的作用相同。
【四、Zookeeper中的Zab協(xié)議】
①客戶端所有的寫入請求,都要轉(zhuǎn)發(fā)給服務(wù)中唯一的領(lǐng)導(dǎo)者Leader,然后領(lǐng)導(dǎo)者Leader根據(jù)請求發(fā)起一個Proposal請求;
②其他的跟隨服務(wù),對該Proposal請求進行投票,看自己是否支持這個請求;
③領(lǐng)導(dǎo)者Leader對投票進行收集,票數(shù)過半時,領(lǐng)導(dǎo)者Leader會向所有的服務(wù)發(fā)送一個通知。
④客戶端所連接的那個服務(wù)器收到消息,執(zhí)行操作并作出對客戶端的回應(yīng)。
【五、Zookeeper節(jié)點】
Zookeeper有四種常用節(jié)點:
①持久:PERSISTENT,【持久化節(jié)點】;
②PERSISTENT_SEQUENTIAL,順序自動編號【持久化節(jié)點】,這種節(jié)點會根據(jù)當(dāng)前已存在的節(jié)點數(shù)自動加 1
③EPHEMERAL,【臨時節(jié)點】, 客戶端session超時這類節(jié)點就會被自動刪除
④EPHEMERAL_SEQUENTIAL,【臨時節(jié)點】臨時自動編號節(jié)點。
然后這四種節(jié)點還可以分呢!
按照持久化
持久:PERSISTENT、PERSISTENT_SEQUENTIAL
臨時:EPHEMERAL、EPHEMERAL_SEQUENTIAL
還可以按照類型,分呢!
目錄節(jié)點:PERSISTENT、EPHEMERAL
編號目錄節(jié)點:PERSISTENT_SEQUENTIAL、EPHEMERAL_SEQUENTIAL
免責(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)容。