用于实现高可用性的集群部署 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

用于实现高可用性的集群部署

集群部署是网络负载均衡器后面的三个 RabbitMQ 代理节点的逻辑分组,每个节点共享用户、队列和跨多个可用区(AZ)的分布式状态。

在集群部署中,Amazon MQ 会自动管理代理策略,以在所有节点上启用经典镜像,从而确保高可用性(HA)。每个镜像队列由一个节点和一个或多个镜像组成。每个队列都有自己的主节点。给定队列的所有操作首先应用于队列的主节点,然后传输到镜像。Amazon MQ 可创建默认系统策略,该策略将 ha-mode 设置为 all,将 ha-sync-mode 设置为 automatic。这可确保数据跨不同可用区复制到集群中的所有节点,以获得更好的持久性。

注意

维护时段,对集群的所有维护都一次执行一个节点,从而始终保持至少两个运行节点。每次关闭节点时,客户端与该节点的连接都会断开,需要重新建立。您必须确保您的客户端代码设计为自动重新连接到您的集群。有关连接恢复的更多信息,请参阅自动从网络故障中恢复

因为 Amazon MQ 设置了 ha-sync-mode: automatic,在维护时段期间,每当有个节点重新加入集群时,队列都将同步。队列同步会阻止所有其他队列操作。通过保持较短的队列,可以在维护时段期间减轻队列同步的影响。

默认策略不应删除。如果您删除此策略,Amazon MQ 将自动重新创建该策略。Amazon MQ 还将确保 HA 属性应用于您在集群代理上创建的所有其他策略。如果您添加的策略没有 HA 属性,Amazon MQ 将为您添加这些属性。如果您添加具有不同高可用性属性的策略,Amazon MQ 将替换它们。有关传统镜像的更多信息,请参阅经典镜像队列

重要

Amazon MQ 不支持仲裁队列。启用仲裁队列功能标志并创建仲裁队列将导致数据丢失。

下图说明了 RabbitMQ 集群代理部署,在三个可用区(AZ)中有三个节点,每个节点都有自己的 Amazon EBS 卷和共享状态。Amazon EBS 提供针对低延迟和高吞吐量进行了优化的块级存储。


                    说明 RabbitMQ 代理的集群部署代理架构。