Skip to content

Commit 72c825a

Browse files
committed
docs(distributed-system): update distributed-lock (#209)
1 parent 20c394a commit 72c825a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

docs/distributed-system/distributed-lock-redis-vs-zookeeper.md

+4
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,10 @@ public class ZooKeeperDistributedLock implements Watcher {
326326
}
327327
```
328328

329+
但是,使用 zk 临时节点会存在另一个问题:由于 zk 依靠 session 定期的心跳来维持客户端,如果客户端进入长时间的 GC,可能会导致 zk 认为客户端宕机而释放锁,让其他的客户端获取锁,但是客户端在 GC 恢复后,会认为自己还持有锁,从而可能出现多个客户端同时获取到锁的情形。[#209](https://github.com/doocs/advanced-java/issues/209)
330+
331+
针对这种情况,可以通过 JVM 调优,尽量避免长时间 GC 的情况发生。
332+
329333
### redis 分布式锁和 zk 分布式锁的对比
330334

331335
- redis 分布式锁,其实**需要自己不断去尝试获取锁**,比较消耗性能。

0 commit comments

Comments
 (0)