redis和zk实现分布式锁的优缺点
生活随笔
收集整理的這篇文章主要介紹了
redis和zk实现分布式锁的优缺点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Redis實現
優點:性能好
缺點:
對某個 redismaster 實例,寫入了 myLock 這種鎖 key 的 value,此時會異步復制給對應的 masterslave 實例。
但是這個過程中一旦發生 redismaster 宕機,主備切換,redisslave 變為了 redismaster。
接著就會導致,客戶端 2 來嘗試加鎖的時候,在新的 redismaster 上完成了加鎖,而客戶端 1 也以為自己成功加了鎖。
此時就會導致多個客戶端對一個分布式鎖完成了加鎖。
這時系統在業務語義上一定會出現問題,導致各種臟數據的產生。
所以這個就是 rediscluster,或者是 redismaster-slave 架構的主從異步復制導致的 redis 分布式鎖的最大缺陷:在 redismaster 實例宕機的時候,可能導致多個客戶端同時完成加鎖。
ZK實現
優點:高可靠 zk本身通過leader+quorum機制保障高可靠。
缺點:ZooKeeper實現的分布式鎖,性能并不太高。為啥呢?
因為每次在創建鎖和釋放鎖的過程中,都要動態創建、銷毀瞬時節點來實現鎖功能。大家知道,ZK中創建和刪除節點只能通過Leader服務器來執行,然后Leader服務器還需要將數據同步到所有的Follower機器上,這樣頻繁的網絡通信,性能的短板是非常突出的。
?
總結
以上是生活随笔為你收集整理的redis和zk实现分布式锁的优缺点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多目标应用:基于MOGWO的地铁隧道上方
- 下一篇: nats streaming订阅