知识卡片

确认覆盖两端

普通读书笔记卡 · 1721.c

内容

RabbitMQ producer confirm 确认消息已被 master 和镜像保存;consumer acknowledge 确认消息已被业务处理,之后才能删除并复制删除动作。发散:消息可靠性要同时问“进入系统了吗”和“离开系统了吗”。

参考来源

- 位置:《分布式系统与一致性》第6章《消息系统RabbitMQ》确认机制一节(源文件:_epub-src/OEBPS/Text/chapter10.xhtml) - 结论依据:原文分别说明生产者侧confirm——"当所有的镜像都回复说已保存至本地后,master回复客户端一个confirm"——与消费者侧acknowledge——"消费者收到这条消息并成功处理后,它会发送一个acknowledge给master。master收到acknowledge之后,将这条消息从本地删除,并且把删除动作传播给所有的镜像"。 - 原始内容:在生产者一侧,确认机制叫作confirm……当所有的镜像都回复说已保存至本地后,master回复客户端一个confirm。在消费者一侧,确认机制叫作acknowledge……消费者收到这条消息并成功处理后,它会发送一个acknowledge给master。master收到acknowledge之后,将这条消息从本地删除,并且把删除动作传播给所有的镜像。