1. 程式人生 > >zookeeper--分散式協調工具

zookeeper--分散式協調工具

zookeeper的應用

  1. 分散式鎖
  2. 負載均衡
  3. 命名服務 dubbo
  4. 分散式通知/協調watcher事件通知
  5. 釋出訂閱 watcher事件通知
  6. 叢集環境 選舉master,redis,哨兵機制ping 6.叢集環境 選舉master,redis,哨兵機制ping 心跳檢測機制

zookeeper的四種節點型別

  1. 持久節點 持久化在硬碟
  2. 持久順序節點
  3. 臨時節點 連線斷開,節點刪除。
  4. 臨時順序節點

節點watcher–節點事件通知,使用監聽機制監聽節的變化。

zookeeper的資料結構

類似於二叉樹,節點可以無限遞增。 節點名稱不可以重複。

zookeeper事件通知

使用監聽機制。 節點發生改變,都會有事件通知。

分散式通知watcher

Dubbo用zookeeper作為註冊中心,監聽各個臨時節點的變化,通過watcher事件通知實現分散式通知。

分散式鎖

什麼是分散式鎖

在分散式的多個JVM中保證資料的唯一性。

分散式鎖實現的三個思路

  1. 資料實現分散式鎖。釋放鎖要先把資料刪掉,會有死鎖的情況
  2. redis中實現分散式鎖。
  3. zookeeper中實現分散式鎖。(推薦)

zookeeper加鎖:臨時節點一建立就加鎖 釋放鎖:連線關閉,鎖釋放。

面試題

如何保證高併發下生成訂單號的唯一? uuid+事件戳+業務ID 將訂單號提前生成號,存放在redis中。使用的時候直接從redis中取。