第 16 章 使用代理连接配置多站点、容错的消息传递系统
大型企业消息传递系统通常具有分散的代理集群,位于地理分布的数据中心上。如果数据中心中断,系统管理员可能需要保留现有的消息传递数据,并确保客户端应用程序能够继续生成和使用消息。您可以在数据中心停机过程中使用代理连接来确保消息传递系统的连续性。这种类型的解决方案称为 多站点容错架构。
对于代理连接间的通信,只支持 AMQP 协议。客户端可以使用任何受支持的协议。目前,消息通过镜像过程转换为 AMQP。
以下小节解释了如何使用代理连接保护消息传递系统不受数据中心故障的影响:
多站点容错并不取代 数据中心内的 高可用性(HA)代理冗余。基于 live-backup 组的代理冗余提供了对单个集群中的单个代理故障进行自动保护。与之相反,多站点容错可以保护大规模数据中心故障。
16.1. 关于代理连接
通过代理连接,代理可以建立到另一个代理的连接,并可从该代理(mirror)信息以及在这个代理中建立连接。
- AMQP 服务器连接
- 代理可以使用代理连接的 AMQP 协议发起到其他端点的连接。例如,代理可以连接到其他 AMQP 服务器并在这些连接中创建元素。
AMQP 服务器连接中支持以下操作:
- mirror - 代理使用 AMQP 连接到另一个代理和重复消息,并通过线路发送确认信息。
- senders - 接收特定队列的消息传输到另一个代理。
- Receivers - 代理从另一个代理拉取信息。
- 对等 - 代理在 AMQ 互联端点上同时创建发件人和接收器。
本章论述了如何使用代理连接来创建容错系统。有关发送器、接收器和对等选项的信息,请参阅 第 17 章 桥接代理。
以下事件通过镜像发送:
- Message send - 发送到一个代理的消息将"replicated"到目标代理。
- 消息确认 - 删除一个代理中的消息会被发送到目标代理。
- 队列和地址创建。
- 队列和地址删除。
如果该消息在目标镜像上的消费者处于待处理状态,则确认信息将无法成功,且两个代理可能会传送消息。
镜像功能不会阻止任何操作,不会影响代理的性能。
代理仅镜像来自配置镜像时的时间点的消息。以前现有的信息不会转发到其他代理。