ZooKeeper 是什麼

來源:互聯網
上載者:User

ZooKeeper 是什嗎?

  ZooKeeper 顧名思義 動物園管理員,他是拿來管大象(Hadoop) 、 蜜蜂(Hive) 、 小豬(Pig)  的管理員, Apache Hbase和 Apache Solr 以及LinkedIn sensei  等項目中都採用到了 Zookeeper。ZooKeeper是一個分布式的,開放源碼的分布式應用程式協調服務,ZooKeeper是以Fast Paxos演算法為基礎,實現同步服務,配置維護和命名服務等分布式應用。

ZooKeeper 如何工作?

  ZooKeeper是作為分布式應用建立更高層次的同步(synchronization)、組態管理 (configuration maintenance)、群組(groups)以及名稱服務(naming)。在編程上,ZooKeeper設計很簡單,所使用的資料模型風格很像檔案系統的分類樹結構,簡單來說,有點類似windows中註冊表的結構,有名稱,有樹節點,有Key(鍵)/Value(值)對的關係,可以看做一個樹形結構的資料庫,分布在不同的機器上做名稱管理。

   Zookeeper分為2個部分:伺服器端和用戶端,用戶端只串連到整個ZooKeeper服務的某個伺服器上。用戶端使用並維護一個TCP串連,通過這個串連發送請求、接受響應、擷取觀察的事件以及發送心跳。如果這個TCP串連中斷,用戶端將嘗試串連到另外的ZooKeeper伺服器。用戶端第一次串連到ZooKeeper服務時,接受這個串連的 ZooKeeper伺服器會為這個用戶端建立一個會話。當這個用戶端串連到另外的伺服器時,這個會話會被新的伺服器重建立立。

   啟動Zookeeper伺服器叢集環境後,多個Zookeeper伺服器在工作前會選舉出一個Leader,在接下來的工作中這個被選舉出來的Leader死了,而剩下的Zookeeper伺服器會知道這個Leader死掉了,在活著的Zookeeper叢集中會繼續選出一個Leader,選舉出leader的目的是為了可以在分布式的環境中保證資料的一致性。:

  另外,ZooKeeper 支援watch(觀察)的概念。用戶端可以在每個znode結點上設定一個觀察。如果被觀察服務端的znode結點有變更,那麼watch就會被觸發,這個watch所屬的用戶端將接收到一個通知包被告知結點已經發生變化。若用戶端和所串連的ZooKeeper伺服器中斷連線時,其他用戶端也會收到一個通知,也就說一個Zookeeper伺服器端可以對於多個用戶端,當然也可以多個Zookeeper伺服器端可以對於多個用戶端,:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.