etcd踩坑記錄

etcd踩坑記錄

問題:獲取etcd鎖時一直阻塞

這裏寫圖片描述

運行結果:

這裏寫圖片描述

原因:

​ 出現這種問題的原因和etcd的分佈式鎖的實現原理有關,簡單來說:etcd的鎖實現原理就是

所有的客戶端都在pfx(這裏就是/pfx/v1)下創建一個自己的key,createrevision最小的那個客戶端獲得鎖,也就是最早建立key的客戶端獲得鎖,之後按照創建的時間先後依次獲得鎖。

​ 由於我們最開始在pfx下建立的一個key,所以它的創建時間回比我們創建的所有關於鎖的key的創建時間要早,導致我們永遠獲取不到鎖。

​ 詳細信息可以參考 cadem 這位博主的一篇文章 用Etcd實現分佈式鎖和選主

解決辦法:

​ 謹慎選擇鎖的pfx的值,確定除了鎖之外不會在此之下創建或修改其他key

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