doocs / advanced-java

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
https://doocs.github.io/advanced-java
Creative Commons Attribution Share Alike 4.0 International
75.75k stars 19.02k forks source link

关于分布式锁对比的一点补充 #209

Closed a7217107 closed 3 years ago

a7217107 commented 3 years ago

使用 Redis 如何设计分布式锁?使用 Zookeeper 来设计分布式锁可以吗?以上两种分布式锁的实现方式哪种效率比较高?

redis 分布式锁和 zk 分布式锁的对比

基于ZK的锁支持在获取锁失败后等待锁释放的事件,更加灵活。

问题:由于ZK依靠session定期的心跳来维持客户端,如果客户端进入长时间的GC,可能会导致ZK认为客户端宕机而释放锁,让其他的客户端获取锁,但是客户端在GC回复后,会认为自己还持有锁。

yanglbme commented 3 years ago

@a7217107 谢谢反馈,我补充到文章中