| 失效鏈接處理 |
|
2024 最新 Zookeeper面試題 PDF 下載
相關截圖:
![]() 主要內(nèi)容:
ZooKeeper 是什么?
ZooKeeper 是一個開源的分布式協(xié)調(diào)服務。它是一個為分布式應用提供一致性服務的軟件,分布
式應用程序可以基于 Zookeeper 實現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負載均衡、命名服務、分布式協(xié)調(diào)/通
知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。
ZooKeeper 的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩(wěn)定
的系統(tǒng)提供給用戶。
Zookeeper 保證了如下分布式一致性特性:
(1)順序一致性
(2)原子性
(3)單一視圖
(4)可靠性
(5)實時性(最終一致性)
客戶端的讀請求可以被集群中的任意一臺機器處理,如果讀請求在節(jié)點上注冊了監(jiān)聽器,這個監(jiān)聽
器也是由所連接的 zookeeper 機器來處理。對于寫請求,這些請求會同時發(fā)給其他 zookeeper 機
器并且達成一致后,請求才會返回成功。因此,隨著 zookeeper 的集群機器增多,讀請求的吞吐
會提高但是寫請求的吞吐會下降。
有序性是 zookeeper 中非常重要的一個特性,所有的更新都是全局有序的,每個更新都有一個唯
一的時間戳,這個時間戳稱為 zxid(Zookeeper Transaction Id)。而讀請求只會相對于更新有
序,也就是讀請求的返回結果中會帶有這個zookeeper 最新的 zxid。
ZooKeeper 提供了什么?
文件系統(tǒng)
通知機制
Zookeeper面試題Zookeeper 文件系統(tǒng)
Zookeeper 提供一個多層級的節(jié)點命名空間(節(jié)點稱為 znode)。與文件系統(tǒng)不同的是,這些節(jié)
點都可以設置關聯(lián)的數(shù)據(jù),而文件系統(tǒng)中只有文件節(jié)點可以存放數(shù)據(jù)而目錄節(jié)點不行。
Zookeeper 為了保證高吞吐和低延遲,在內(nèi)存中維護了這個樹狀的目錄結構,這種特性使得
Zookeeper 不能用于存放大量的數(shù)據(jù),每個節(jié)點的存放數(shù)據(jù)上限為1M。
Zookeeper 怎么保證主從節(jié)點的狀態(tài)同步?
Zookeeper 的核心是原子廣播機制,這個機制保證了各個 server 之間的同步。實現(xiàn)這個機制的協(xié)
議叫做 Zab 協(xié)議。Zab 協(xié)議有兩種模式,它們分別是恢復模式和廣播模式。
恢復模式
當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,當領導者被選舉出來,且大多數(shù) server
完成了和 leader 的狀態(tài)同步以后,恢復模式就結束了。狀態(tài)同步保證了 leader 和 server 具有相
同的系統(tǒng)狀態(tài)。
廣播模式
一旦 leader 已經(jīng)和多數(shù)的 follower 進行了狀態(tài)同步后,它就可以開始廣播消息了,即進入廣播狀
態(tài)。這時候當一個 server 加入 ZooKeeper 服務中,它會在恢復模式下啟動,發(fā)現(xiàn) leader,并和
leader 進行狀態(tài)同步。待到同步結束,它也參與消息廣播。ZooKeeper 服務一直維持在
Broadcast 狀態(tài),直到 leader 崩潰了或者 leader 失去了大部分的 followers 支持。
|




蘇公網(wǎng)安備 32061202001004號


