Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

etcd 怎样设计公平锁和非公平锁?

查看完整题解

参考回答

直接回答

用每次竞争时创建的候选键排序,按 CreateRevision 轮到才进,可获得按服务器登记顺序的近似 FIFO。只用条件创建单个锁键时,所有人释放后重新抢,属于非公平。

讲清原理

客户端实际先发请求的时间可能与服务器先提交不同。取消、租约失效和重连也会影响排队。公平策略的目标应写清是按服务器完成登记的顺序。

例子与易错点

后来的请求网络更快,可能先登记。公平锁保证登记后的次序,不保证按每台机器的本地时钟先后来执行。

延伸阅读 etcd 分布式锁的核心步骤是什么? · etcd 怎样用 Revision 和 Watch 实现锁竞争? · 如何避免 etcd 锁等待的羊群效应?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。