怎样用 etcd 实现一个简单分布式队列?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
可以给任务使用独立键,用创建 revision 排序。消费者通过条件事务抢占任务,没有任务时监听队列前缀。处理完成后,要明确确认与失败重投。
讲清原理
让领取任务的事务先检查任务有没有被领走,只允许一个消费者成功。登记领取状态时可以使用租约或其他恢复标志。消费和外部副作用之间仍需幂等或原子处理。
例子与易错点
消费者处理完扣款后崩溃但未删除任务,重投可能再次取到。队列实现要靠业务请求号去重,高吞吐任务更适合专用消息系统。
延伸阅读 etcd Watch 怎么监听键变化? · etcd 事务有哪些 ACID 保证? · etcd 分布式锁的核心步骤是什么?
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。