Zookeeper 介紹及典型應用場景
一、ZooKeeper是什麼?
ZooKeeper是原始碼開放的分散式協調服務,由雅虎建立,是Google Chubby的開源實現。ZooKeeper是一個高效能的分散式資料一致性解決方案,它將那些複雜的、容易出錯的分散式一致性服務封裝起來,構成一個高效可靠的原語集,並提供一系列簡單易用的介面給使用者使用
ZooKeeper是分散式協調服務,它能解決分散式資料一致性問題
A:順序一致性 B:原子性 C:單一檢視 D:可靠性 E:實時性
二、Zookeeper的典型應用場景?
1.資料釋出/訂閱
資料釋出/訂閱 顧名思義就是一方把資料釋出出來,另一方通過某種手段可以得到這些資料。
通常資料訂閱有兩種方式:推模式和拉模式,推模式一般是伺服器主動向客戶端推送資訊, 拉模式是客戶端主動去伺服器獲取資料(通常是採用定時輪詢的方式),ZK採用兩種方式相結合,釋出者將資料釋出到ZK叢集節點上,訂閱者通過一定的方法告訴伺服器,我對哪個節點的資料感興趣,那伺服器在這些節點的資料發生變化時,就通知客戶端,客戶端得到通知後可以去伺服器獲取資料資訊。
2.負載均衡
步驟:
1、首先DB在啟動的時候先把自己在ZK上註冊成一個臨時節點,ZK的節點後面我們會講到有兩種,一種是永久節點,一類是臨時節點臨時節點在伺服器出現問題的時候,節點會自動的從ZK上刪除,那麼這樣ZK上的伺服器列表就是最新的可用的列表。
2、客戶端在需要讀寫資料庫的時候首先它去ZooKeeper得到所有可用的DB的連線資訊(一張列表)。
3、客戶端隨機選擇一個與之建立連線。
4、當客戶端發現連線不可用的時候可再次從ZK上獲取可用的DB連線資訊,當然也可以在剛獲取的那個列表裡移除掉不可用的連線後再隨機選擇一個DB與之連線。
3.命名服務
顧名思義,就是提供名稱的服務,例如資料庫表格ID,一般用得比較多的有兩種ID,一種是自動增長的ID,一種是UUID(9291d71a-0354-4d8e-acd8-64f7393c64ae),兩種ID各自都有缺陷,自動增長的ID侷限在單庫單表中使用,不能在分散式中使用,UUID可以在分散式中使用但是由於ID沒有規律難於理解,我們可以借用ZK來生成一個順序增長的,可以在叢集環境下使用的,命名易於理解的ID。
4.分散式協調/通知
心跳檢測
在分散式系統中,我們常常需要知道某個機器是否可用,傳統的開發中,可以通過Ping某個主機來實現,Ping得通說明對方是可用的,相反是不可用的,ZK 中我們讓所有的機其都註冊一個臨時節點,我們判斷一個機器是否可用,我們只需要判斷這個節點在ZK中是否存在就可以了,不需要直接去連線需要檢查的機器 ,降低系統的複雜度。
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- PyFlink 最新進展解讀及典型應用場景介紹
- Fiddler(一)Fiddler介紹及應用場景
- ZooKeeper核心原理及應用場景
- Zookeeper應用場景
- 輪換代理介紹及適用場景介紹
- 基於Apache Hudi構建資料湖的典型應用場景介紹Apache
- hive時間日期函式及典型場景應用Hive函式
- 【分散式】Zookeeper應用場景分散式
- zookeeper使用(四)--應用場景
- ZooKeeper分散式專題(二) -- zookeeper應用場景及資料模型分散式模型
- Flink Table Store 典型應用場景
- MPLS VPN典型應用場景——VecloudCloud
- Apache Hudi典型應用場景知多少?Apache
- Zookeeper應用場景和ZAB協議協議
- 詳解百度ERNIE進化史及典型應用場景
- Apache Doris設計思想介紹與應用場景Apache
- Hive簡介、應用場景及架構原理Hive架構
- Zookeeper應用場景彙總(超詳細)
- Zookeeper基礎原理&應用場景詳解
- Sqlite 介紹及應用SQLite
- 邊緣雲端計算典型應用場景
- RabbitMQ的應用場景以及基本原理介紹MQ
- RabbitMQ 的應用場景以及基本原理介紹MQ
- 區塊鏈信用機制與應用場景介紹區塊鏈
- 7.3 應用場景簡介
- SpringBoot整合RabbitMQ之典型應用場景實戰二Spring BootMQ
- SpringBoot整合RabbitMQ之典型應用場景實戰一Spring BootMQ
- Redis HyperLogLog介紹及應用Redis
- ZooKeeper介紹
- 挖掘空間資料要素典型領域應用場景
- 阿里雲日誌服務sls的典型應用場景阿里
- 真香!盤點雲主機三種典型應用場景
- 數字沙盤的四大應用場景分析介紹
- Lucene介紹及簡單應用
- redis應用場景及例項Redis
- RabbitMQ核心元件及應用場景MQ元件
- 騰訊雲資料庫應用典型場景及解釋教程資料庫
- 雲端計算日常運用場景介紹!
- 用 10 分鐘瞭解 Go 語言 context package 使用場景及介紹GoContextPackage