用于实现高可用性的集群部署
集群部署是网络负载均衡器后面的三个 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 提供针对低延迟和高吞吐量进行了优化的块级存储。
