第 16 章 使用代理连接配置多站点容错消息传递系统
大规模企业消息传递系统通常具有位于地理分布式数据中心的离散代理集群。如果数据中心中断,系统管理员可能需要保留现有的消息传递数据,并确保客户端应用程序可以继续生成和使用消息。您可以使用代理连接来确保数据中心中断期间消息传递系统的连续性。这种类型的解决方案称为 多站点、容错架构。
仅支持 AMQP 协议用于代理连接之间的通信。客户端可以使用任何支持的协议。目前,消息通过镜像过程转换为 AMQP。
以下小节解释了如何使用代理连接保护消息传递系统不受数据中心中断的影响:
多站点容错不是 数据中心内 高可用性(HA)代理冗余的替代。基于主备份组的代理冗余功能为单个集群内的单个代理故障提供自动保护。相反,多站点容错可防止大规模数据中心中断。
16.1. 关于代理连接 复制链接链接已复制到粘贴板!
使用代理连接时,代理可以建立到另一个代理的连接,并将信息镜像到该代理。
- AMQP 服务器连接
- 代理可以使用 AMQP 协议启动与其他端点的连接。例如,例如,代理可以连接到其他 AMQP 服务器,并在这些连接上创建元素。
AMQP 服务器连接支持以下类型的操作:
- mirrors - 代理使用 AMQP 连接到另一个代理,重复消息,并通过线路发送确认。
- senders - 在特定队列上收到的消息传输到另一个代理。
- Receivers - 代理从另一个代理拉取信息。
- peers - 代理在 AMQ Interconnect 端点上创建发送者和接收器。
本章论述了如何使用代理连接来创建容错系统。有关发送者、接收器和对等选项的信息,请参阅 第 17 章 桥接代理。
以下事件通过镜像发送:
- Message sending - 发送到一个代理的消息将"复制"到目标代理。
- 消息确认 - 将使用一个代理中删除信息的功能将发送到目标代理。
- 队列和地址创建。
- 队列和地址删除。
如果消息在目标镜像上的消费者处于 pending 状态,则确认信息将无法成功,且消息可能由两个代理发送。
镜像不会阻止任何操作,不会影响代理的性能。
代理只镜像从配置镜像的时间点相关的消息。以前,现有信息不会转发到其他代理。
确保您没有实现创建循环的镜像拓扑,这会导致消息重复。例如,如果您有一个 3-broker 部署,其中代理 1 将数据镜像到代理 2,代理 2 会将数据镜像到代理 3,请通过将数据从代理 3 镜像到代理 1 来避免创建循环。同样,不要创建 3 个或更多代理的拓扑,每个代理将数据镜像到所有其他代理。但是,您可以实施双镜像拓扑,其中两个代理会相互镜像。