zookepper分佈式鎖

1.數據庫

性能差

2.redis

可能出現死鎖

3.zookeeper

功能:zk存儲,讀取數據;數據節點監聽服務,臨時節點跟客戶端斷開數據丟失;持久節點跟客戶端斷開數據還在

兩種方式:

1.創建臨時節點,創建成功獲得鎖,創建同名則報錯,監聽lock節點的刪除事件,加鎖線程執行完業務邏輯解鎖刪除臨時節點,則觸發刪除事件,則重新去獲得鎖

2.創建臨時有序節點,只需要監聽一個,所以性能好,但是資源佔用多

trylock:創建臨時有序節點,獲取臨時節點集合並排序,判斷自己是不是最小的節點,是則加鎖成功;否則獲得前邊的節點監聽其刪除事件,前邊節點刪除時,則重新trylock

unlock:釋放鎖就是刪除節點或者客戶端斷開

第一種:

 

 

 

 

第二種:

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章