最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Zookeeper?無聊的知識又增加了?

2023-06-14 08:27 作者:IT楓斗者-跳蚤網(wǎng)  | 我要投稿

hello大家好,這幾天會分享一些關于ZooKeeper相關知識點大家,因為比較多,所以會分幾個部分。1、說說 Zookeeper 是什么?直譯:從名字上直譯就是動物管理員,動物指的是 Hadoop 一類的分布式軟件,管理員三個字體現(xiàn)了 ZooKeeper 的特點:維護、協(xié)調、管理、監(jiān)控。簡述:有些軟件你想做成集群或者分布式,你可以用 ZooKeeper 幫你來輔助實現(xiàn)。特點:

  • 最終一致性:客戶端看到的數(shù)據(jù)最終是一致的。

  • 可靠性:服務器保存了消息,那么它就一直都存在。

  • 實時性:ZooKeeper 不能保證兩個客戶端同時得到剛更新的數(shù)據(jù)。

  • 獨立性(等待無關):不同客戶端直接互不影響。

  • 原子性:更新要不成功要不失敗,沒有第三個狀態(tài)。

2、zookeeper的工作原理?
Zookeeper的核心是原子廣播,這個機制保證了各個Server之間的同步。實現(xiàn)這個機制的協(xié)議叫做Zab協(xié)議。Zab協(xié)議有兩種模式,它們 分別是恢復模式(選主)和廣播模式(同步)

epoch:可以理解為皇帝的年號,當新的皇帝leader產(chǎn)生后,將有一個新的epoch年號。
每個Server在工作過程中有三種狀態(tài):

  • LOOKING:當前Server不知道leader是誰,正在搜尋。

  • LEADING:當前Server即為選舉出來的leader。

  • FOLLOWING:leader已經(jīng)選舉出來,當前Server與之同步

3、描述一下 Zookeeper 的通知機制是什么?Zookeeper 允許客戶端向服務端的某個 znode 注冊一個 Watcher 監(jiān)聽,當服務端的一些指定事件觸發(fā)了這個 Watcher ,服務端會向指定客戶端發(fā)送一個事件通知來實現(xiàn)分布式的通知功能,然后客戶端根據(jù) Watcher 通知狀態(tài)和事件類型做出業(yè)務上的改變大致分為三個步驟:

client?端會對某個?znode?建立一個?watcher?事件,當該?znode?發(fā)生變化時,這些?client?會收到?zk?的通知,然后?client?可以根據(jù)?znode?變化來做出業(yè)務上的改變等。

4、Zookeeper 對節(jié)點的 watch 監(jiān)聽通知是永久的嗎?不是,一次性的。無論是服務端還是客戶端,一旦一個 Watcher 被觸發(fā), Zookeeper 都會將其從相應的存儲中移除。

這樣的設計有效的減輕了服務端的壓力,不然對于更新非常頻繁的節(jié)點,服務端會不斷的向客戶端發(fā)送事件通知,無論對于網(wǎng)絡還是服務端的壓力都非常大。

5、Zookeeper 集群中有哪些角色?

注意:在一個集群中,最少需要 3 臺。或者保證 2N + 1 臺,即奇數(shù)。為什么保證奇數(shù)?主要是為了選舉算法。6、Zookeeper 集群中Server有哪些工作狀態(tài)?

7、Zookeeper 集群中是怎樣選舉leader的?當Leader崩潰了,或者失去了大多數(shù)的Follower,這時候 Zookeeper 就進入恢復模式,恢復模式需要重新選舉出一個新的Leader,讓所有的Server都恢復到一個狀態(tài)LOOKING 。Zookeeper 有兩種選舉算法:基于 basic paxos 實現(xiàn)和基于 fast paxos 實現(xiàn)。默認為 fast paxos。8、Zookeeper 是如何保證事務的順序一致性的呢?Zookeeper 采用了遞增的事務 id 來識別,所有的 proposal (提議)都在被提出的時候加上了zxid 。zxid 實際上是一個 64 位數(shù)字

高 32 位是 epoch 用來標識 Leader 是否發(fā)生了改變,如果有新的 Leader 產(chǎn)生出來, epoch 會自增。低 32 位用來遞增計數(shù)。當新產(chǎn)生的 proposal 的時候,會依據(jù)數(shù)據(jù)庫的兩階段過程,首先會向其他的 Server 發(fā)出事務執(zhí)行請求,如果超過半數(shù)的機器都能執(zhí)行并且能夠成功,那么就會開始執(zhí)行。

9、ZooKeeper 集群中個服務器之間是怎樣通信的?Leader 服務器會和每一個 Follower/Observer 服務器都建立 TCP 連接,同時為每個Follower/Observer 都創(chuàng)建一個叫做 LearnerHandler 的實體。

  • LearnerHandler 主要負責 Leader 和 Follower/Observer 之間的網(wǎng)絡通訊,包括數(shù)據(jù)同步,請求轉發(fā)和 proposal 提議的投票等。

  • Leader 服務器保存了所有 Follower/Observer 的 LearnerHandler 。

10、Zookeeper的系統(tǒng)架構了解嗎?

ZooKeeper 的架構圖中我們需要了解和掌握的主要有如下圖:

11、Zookeeper為什么要這么設計?ZooKeeper設計的目的是提供高性能、高可用、順序一致性的分布式協(xié)調服務、保證數(shù)據(jù)最終一致性。


Zookeeper?無聊的知識又增加了?的評論 (共 條)

分享到微博請遵守國家法律
古田县| 新建县| 灌南县| 敖汉旗| 绵竹市| 山东省| 前郭尔| 马龙县| 莎车县| 忻城县| 庆元县| 巨鹿县| 观塘区| 星子县| 玛沁县| 苏尼特右旗| 栖霞市| 屏东市| 宕昌县| 清河县| 兴化市| 易门县| 饶河县| 长武县| 三都| 同江市| 延川县| 兰坪| 海丰县| 罗平县| 保山市| 九台市| 区。| 江城| 巴东县| 保定市| 沾化县| 磴口县| 罗甸县| 乳山市| 福清市|