用zookeeper来实现分布式锁
生活随笔
收集整理的這篇文章主要介紹了
用zookeeper来实现分布式锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
結合我們前面對zookeeper特性的分析和理解,我們可以利用zookeeper節點的特性來實現獨占鎖,就是同級節點的唯一性,多個進程往zookeeper的指定節點下創建一個相同名稱的節點,只有一個能成功,另外一個是創建失敗;創建失敗的節點全部通過zookeeper的watcher機制來監
聽zookeeper這個子節點的變化,一旦監聽到子節點的刪除事件,則再次觸發所有進程去寫鎖;
這種實現方式很簡單,但是會產生“驚群效應”,簡單來說就是如果存在許多的客戶端在等待獲取鎖,當成功獲取到鎖的進程釋放該節點后,所有處于等待狀態的客戶端都會被喚醒,這個時候zookeeper在短時間內發送大量子節點變更事件給所有待獲取鎖的客戶端,然后實際情況是只會有一個客戶端獲得鎖。如果在集群規模比較大的情況下,會對zookeeper服務器的性能產生比較的影響。
?
?
總結
以上是生活随笔為你收集整理的用zookeeper来实现分布式锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式锁的基本场景
- 下一篇: 利用有序节点来实现分布式锁