第 4 章 AMQP
AMQP 是一种开放互联网协议,用于可靠发送和接收消息。它得到了多个软件供应商和主要机构的支持。AMQP 1.0 于 2012 年成为 OASIS 标准,2014 年成为 ISO 标准。
- 具有会话多路复用的帧协议
- 支持对等和客户端-服务器连接
- 为无丢失数据交换提供标准类型系统
- 提供流程控制、心跳和资源限制,以提高分布式系统中的可靠性
- 使用空间效率的二进制编码和管道来减少延迟
4.1. AMQP 交付保证
解决的 AMQP 模型基于消息发送的生命周期。在链接的每端,都会创建一个代表消息传输的实体,它存在一段时间,最后是"集集",这意味着它可以忘记。在交付的组合生命周期中,有四个感兴趣的事件:
- 交付是在发件人处创建的。
- 传输在接收器上创建。
- 发件人负责授课。
- 传输是在接收方提供的。
由于发送方和接收方同时运行,这些事件可能会以各种订单发生,这些事件的顺序会产生不同的消息发送保障。
最快交付一次
最一次的交付也被称为"弃用"或"光纤和忘记"交付。
- 交付是在发件人处创建的。
- 发件人负责授课。
- 传输在接收器上创建。
- 传输是在接收方提供的。
在这种配置中,发件人在到达接收方之前忘记(即忘记)发货商,如果发生任何机票,则发件人没有回发基础。
此模式适用于可接受临时消息丢失(如定期传感器数据)或应用本身可检测故障和重新发送的应用。
at-least-once 交付
- 交付是在发件人处创建的。
- 传输在接收器上创建。
- 传输是在接收方提供的。
- 发件人负责授课。
在这种配置中,接收方在收到交付时巩固了发送方,而发件人一旦看到接收方,即即开始装配。如果出差时出现任何情况,则发件人可以返回。但是,接收方已经忘记了发送,因此重新发送将导致邮件发送重复。应用可以使用唯一的消息 ID 来过滤重复项。