使用zookeeper實現分布式鎖

2021-08-14 12:01:03 字數 644 閱讀 3833

zookeeper體系結構示意圖:

功能:(*) 節點自選擇,例如:主節點1掛了,可以自動選擇節點2或者節點3作為主節點。

(*) 節點之間可以自動備份資料,例如:節點1的資料會自動備份到節點2和3。

(*) 單點部署,說明:把zookeeper裝在一台機器上,主從節點都在用乙個機器。

(*) 節點具有排它性,可用於分布式鎖。利用此功能實現高併發、負載均衡。例如:用於秒殺系統,可以在高併發情況下保證執行緒安全;同時可以對請求進行分流,根據不同地區的ip請求放在過濾到不同的節點,均衡伺服器壓力。而本例就利用該功能模擬簡單這個過程。

zookeeper實現分布式鎖原理示意圖:

專案結構:

具體實現:

使用zookeeper實現分布式鎖

在同乙個jvm程序中時,可以使用juc提供的一些鎖來解決多個執行緒競爭同乙個共享資源時候的執行緒安全問題,但是當多個不同機器上的不同jvm程序共同競爭同乙個共享資源時候,juc包的鎖就無能無力了,這時候就需要分布式鎖了。常見的有使用zk的最小版本,redis的set函式,資料庫鎖來實現,本節我們談談...

Dubbo基於Zookeeper實現分布式服務

點關注不迷路,歡迎再訪!精簡部落格內容,盡量已行業術語來分享。努力做到對每一位認可自己的讀者負責。幫助別人的同時更是豐富自己的良機。既然是新手教學,肯定很多同學不明白什麼是分布式和遠端服務呼叫,為什麼要分布式,為什麼要遠端呼叫。下圖為例 以前什麼的都在乙個伺服器上,呼叫方法直接就自然而然呼叫了,沒啥...

Zookeeper實現分布式鎖

zookeeper實現分布式鎖 實現分布式環境下同步鎖的實現 author hao.wang date 2017 1 20 15 43 public class distributelockdemo implements watcher catch ioexception e catch inter...