zookeeper--分散式協調工具
阿新 • • 發佈:2018-12-14
zookeeper的應用
- 分散式鎖
- 負載均衡
- 命名服務 dubbo
- 分散式通知/協調watcher事件通知
- 釋出訂閱 watcher事件通知
- 叢集環境 選舉master,redis,哨兵機制ping 6.叢集環境 選舉master,redis,哨兵機制ping 心跳檢測機制
zookeeper的四種節點型別
- 持久節點 持久化在硬碟
- 持久順序節點
- 臨時節點 連線斷開,節點刪除。
- 臨時順序節點
節點watcher–節點事件通知,使用監聽機制監聽節的變化。
zookeeper的資料結構
類似於二叉樹,節點可以無限遞增。 節點名稱不可以重複。
zookeeper事件通知
使用監聽機制。 節點發生改變,都會有事件通知。
分散式通知watcher
Dubbo用zookeeper作為註冊中心,監聽各個臨時節點的變化,通過watcher事件通知實現分散式通知。
分散式鎖
什麼是分散式鎖
在分散式的多個JVM中保證資料的唯一性。
分散式鎖實現的三個思路
- 資料實現分散式鎖。釋放鎖要先把資料刪掉,會有死鎖的情況。
- redis中實現分散式鎖。
- zookeeper中實現分散式鎖。(推薦)
zookeeper加鎖:臨時節點一建立就加鎖 釋放鎖:連線關閉,鎖釋放。
面試題
如何保證高併發下生成訂單號的唯一? uuid+事件戳+業務ID 將訂單號提前生成號,存放在redis中。使用的時候直接從redis中取。