etcd 怎样用 Revision 和 Watch 实现锁竞争?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
竞争者由创建版本排队。尚未到队首的客户端等待比自己早一位的候选键删除,再重新检查前面是否还有人。
讲清原理
等待应从正确 revision 开始,避免查询后、订阅前错过删除。每次前驱离开后要重新确认自己的候选键仍存在,并按客户端库的错误处理继续。
例子与易错点
A、B、C 按序竞争。B 等 A,C 先等 B。A 消失后 B 最先推进,C 不必被这次变化一起唤醒。
延伸阅读 etcd 的 Revision 在锁里能做什么? · etcd 分布式锁的核心步骤是什么? · 如何避免 etcd 锁等待的羊群效应?
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。