

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon MQ for RabbitMQ 代理的部署选项
<a name="rabbitmq-broker-architecture"></a>

可以*单实例代理*或*集群部署*方式创建 RabbitMQ 代理。对于这两种部署模式，Amazon MQ 通过冗余存储其数据来提供高持久性。

您可以访问您的 RabbitMQ 代理，方法是使用 [RabbitMQ 支持的任何编程语言](https://www.rabbitmq.com/devtools.html)并通过为以下协议启用 TLS：
+ [AMQP (0-9-1)](https://www.rabbitmq.com/specification.html)

**Topics**
+ [选项 1：Amazon MQ for RabbitMQ 单实例代理](#rabbitmq-broker-architecture-single-instance)
+ [选项 2：Amazon MQ for RabbitMQ 集群部署](#rabbitmq-broker-architecture-cluster)

## 选项 1：Amazon MQ for RabbitMQ 单实例代理
<a name="rabbitmq-broker-architecture-single-instance"></a>

*单实例代理*由位于网络负载均衡器（NLB）后面的一个可用区中的一个代理组成。代理可与您的应用程序和 Amazon EBS 存储卷进行通信。Amazon EBS 提供针对低延迟和高吞吐量进行了优化的块级存储。

 使用网络负载均衡器可确保您的 Amazon MQ for RabbitMQ 代理终端节点在维护时段期间或由于底层 Amazon EC2 硬件故障更换代理实例时保持不变。网络负载均衡器允许您的应用程序和用户继续使用相同的终端节点连接到代理。

下图说明了 Amazon MQ for RabbitMQ 单实例代理。

![\[Diagram showing client, load balancer, Amazon MQ broker, and EBS volume in AWS 云.\]](http://docs.aws.amazon.com/zh_cn/amazon-mq/latest/developer-guide/images/amazon-mq-rabbitmq-broker-architecture-single-broker.png)


## 选项 2：Amazon MQ for RabbitMQ 集群部署
<a name="rabbitmq-broker-architecture-cluster"></a>

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

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

**注意**  
 在集群部署中，如果发生可用区中断，Amazon MQ 将自动尝试将受影响的 RabbitMQ 节点重新放置到不同的可用区以维持集群大小。一旦中断解决，集群将自动跨可用区重新平衡。

**注意**  
在*维护时段*，对集群的所有维护都一次执行一个节点，从而始终保持至少两个运行节点。每次关闭节点时，客户端与该节点的连接都会断开，需要重新建立。您必须确保您的客户端代码设计为自动重新连接到您的集群。有关连接恢复的更多信息，请参阅[步骤 1：自动从网络故障中恢复](best-practices-network-resilience.md#automatically-recover-from-network-failures)。  
因为 Amazon MQ 设置了 `ha-sync-mode: automatic`，在维护时段期间，每当有个节点重新加入集群时，队列都将同步。队列同步会阻止所有其他队列操作。通过保持较短的队列，可以在维护时段期间减轻队列同步的影响。

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

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

![\[说明 RabbitMQ 代理的集群部署代理架构。\]](http://docs.aws.amazon.com/zh_cn/amazon-mq/latest/developer-guide/images/amazon-mq-rabbitmq-broker-architecture-cluster-broker.png)
