分布式锁redlock 之 看大佬们吹牛皮
看大佬們吹牛皮都有意思🐶
antirez: “快來看我搞的redlock,感覺還不錯哦。”
https://redis.io/topics/distlock
Martin: “你這個redlock不行啊。”
http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
antirez: “來,我來給你說一下為什么行。”
http://antirez.com/news/101
讀后感
redlock的兩個問題
基于local time來判斷鎖的過期時間,local time因為其他原因被修改, 將不能保證鎖的嚴(yán)格的正確性 (人為修改,與時間服務(wù)器同步時間等)
獲取到鎖的實例,在鎖有效期期內(nèi)沒干完活,超過有效期后,另一個實例可獲得同一個鎖。造成同一個鎖被多個實例持有。
可以通過不設(shè)置過期時間來解決這個問題,但是不設(shè)置過期時間又會造成死鎖無法自動解決。
當(dāng)然這個不是redlock特有的問題。但凡帶過期時間的鎖,應(yīng)該都有這個問題。
antirez 與 Martin 爭論的點:
redlock的定位比較尷尬。
(官方舉例是5個),增加了使用門檻。
個人認(rèn)為 setnx or redlock
適合的使用場景
- 大部分的日常的業(yè)務(wù),追求低成本,簡單易用,99%的情況下能正確使用就行,偶爾的錯誤對業(yè)務(wù)產(chǎn)生的影響不大。
不適合的場景
- 對于錯誤0容忍的場景,出一點點錯誤就會翻車出人命的那種。比如發(fā)火箭,自動駕駛,金錢交易。😂
redis作為緩存使用還是很優(yōu)秀的。
只不過可能覺得 搞個分布式鎖似乎是舉手之勞,還沒想到這么好用,但確實沒有嚴(yán)格的正確性保證。
總結(jié)
以上是生活随笔為你收集整理的分布式锁redlock 之 看大佬们吹牛皮的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抖音测试距离的软件,抖音测量长度的软件如
- 下一篇: Jena对本体、RDF三元组的API操作