分布式鎖的實現

2021-08-21 11:25:00 字數 342 閱讀 9207

分布式鎖的實現方式通常有三種,第一種是基於資料庫實現分布式鎖,第二種是基於快取實現分布式鎖,第三種是基於zookeeper實現分布式鎖.

第一種:基於資料庫實現分布式鎖

特點:效能較差,容易出現單點故障

鎖沒有失效時間,容易思死鎖

非阻塞式的

不可重入

第二種基於快取實現分布式鎖

鎖沒有失效時間,容易死鎖

非阻塞式的

不可重入

基於zookeeper實現分布式

實現相對簡單

可靠性高

效能較好

使用zookeeper實現分布式鎖:

原理:同父子節點不能重名

分布式鎖 使用Redis實現分布式鎖

關於分布式鎖的實現,我的前一篇文章講解了如何使用zookeeper實現分布式鎖。關於分布式鎖的背景此處不再做贅述,我們直接討論下如何使用redis實現分布式鎖。關於redis,筆主不打算做長篇大論的介紹,只介紹下redis優秀的特性。支援豐富的資料型別,如string list map set zs...

分布式鎖實現

1,資料庫實現原理 資料庫的行級x鎖。優點 不需要引入第三方應用。缺點 死鎖 對資料庫效能影響,可能較長時間占用資料庫連線資源 如果業務是分庫分表的,可能支援不了 示例 2,快取實現原理 通過setnx是否成功。當且僅當 key 不存在,將 key 的值設為 value 並返回1 若給定的 key ...

分布式鎖的實現

分布式鎖的實現 實現分布式鎖要滿足的條件 1.互斥性 在任意時刻,只有乙個客戶端能持有鎖 2.死鎖 不會發生死鎖,即使乙個客戶端在持有鎖的時候崩潰而沒有自己解鎖,也能保證後面其它客戶端能重新獲取鎖 3.容錯 只要大部分的節點能夠正常執行就能保證客戶端能加鎖和解鎖 1.使用資料的悲觀鎖 排它鎖 1.建...