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

怎样用 etcd 实现一个简单分布式队列?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

可以给任务使用独立键,用创建 revision 排序。消费者通过条件事务抢占任务,没有任务时监听队列前缀。处理完成后,要明确确认与失败重投。

讲清原理

让领取任务的事务先检查任务有没有被领走,只允许一个消费者成功。登记领取状态时可以使用租约或其他恢复标志。消费和外部副作用之间仍需幂等或原子处理。

例子与易错点

消费者处理完扣款后崩溃但未删除任务,重投可能再次取到。队列实现要靠业务请求号去重,高吞吐任务更适合专用消息系统。

延伸阅读 etcd Watch 怎么监听键变化? · etcd 事务有哪些 ACID 保证? · etcd 分布式锁的核心步骤是什么?

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

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