

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

# 创建和配置 Amazon MQ 代理网络
<a name="amazon-mq-creating-configuring-network-of-brokers"></a>

*代理网络*由多个同时活动的[单实例代理](amazon-mq-broker-architecture.md#single-broker-deployment)或[主动/备用代理](amazon-mq-broker-architecture.md#active-standby-broker-deployment)组成。在本教程中，您将了解如何使用*源和接收器*拓扑来创建一个具有两个代理的代理网络。

有关概念概述和详细配置信息，请参阅以下内容：
+ [Amazon MQ 代理网络](network-of-brokers.md)
+ [正确配置您的代理网络](best-practices-activemq.md#network-of-brokers-configure-correctly)
+ `networkConnector`
+ `networkConnectionStart异步`
+ ActiveMQ 文档中的[代理网络](http://activemq.apache.org/networks-of-brokers.html)

您可以使用 Amazon MQ 控制台创建 Amazon MQ 代理网络。因为您可以开始并行创建这两个代理，所以此过程大约需要 15 分钟。

**Topics**
+ [先决条件](#creating-configuring-network-of-brokers-create-brokers)
+ [Configure the Brokers in a Network](#creating-configuring-network-of-brokers-allow-traffic)
+ [Configure Network Connectors for Your Broker](#creating-configuring-network-of-brokers-configure-network-connectors)
+ [Next Steps: Test the Network of Brokers](#creating-configuring-network-of-brokers-test)

## 先决条件
<a name="creating-configuring-network-of-brokers-create-brokers"></a>

要创建代理网络，您必须具备以下条件：
+ 两个或多个同时处于活动状态的代理（在本教程中命名为 `MyBroker1` 和 `MyBroker2`）。有关创建代理的更多信息，请参阅[入门：创建并连接 ActiveMQ 代理](getting-started-activemq.md)。
+ 这两个代理必须位于同一 VPC 中或处于对等状态。 VPCs有关更多信息 VPCs，请参阅[什么是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 在 *Amazon VPC 用户指南*和[什么是 VPC 对等互连](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)？ 在《*亚马逊 VPC 对等互连指南》*中。
**重要**  
如果您没有默认 VPC、子网或安全组，则必须先创建它们。有关更多信息，请参阅《Amazon VPC 用户指南》**中的以下内容：  
[创建默认 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-vpc)
[创建默认子网](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet)
[正在创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ 两个用户对两个代理程序具有相同的登录凭证。有关创建用户的更多信息，请参见 [创建 ActiveMQ 代理用户](amazon-mq-listing-managing-users.md)。
**注意**  
将 LDAP 身份验证与代理网络集成时，请确保该用户既作为 ActiveMQ 代理，也作为 LDAP 用户存在。

以下示例使用两个[单实例代理](amazon-mq-broker-architecture.md#single-broker-deployment)。但是，您可以使用[主动/备用代理](amazon-mq-broker-architecture.md#active-standby-broker-deployment)或代理部署模式的组合来创建代理网络。

## 步骤 1：允许代理之间的流量
<a name="creating-configuring-network-of-brokers-allow-traffic"></a>

创建代理后，必须允许它们之间的流量。

1. 在 [Amazon MQ 控制台](https://console.aws.amazon.com/amazon-mq/)上，在第 **MyBroker2** 页的 “**详细信息**” 部分的 “**安全和网络**” 下，选择您的安全组的名称或。![\[Pencil icon indicating an edit or modification action.\]](http://docs.aws.amazon.com/zh_cn/amazon-mq/latest/developer-guide/images/amazon-mq-tutorials-broker-details-link.png)

   此时将显示 EC2 Dashboard 的 **Security Groups (安全组)** 页面。

1. 从安全组列表中，选择您的安全组。

1. 在页面底部，选择 **Inbound (入站)**，然后选择 **Edit (编辑)**。

1. 在**编辑入站规则**对话框中，为 OpenWire 终端节点添加规则。

   1. 选择**添加规则**。

   1. 对于 **Type (类型)**，选择 **Custom TCP (自定义 TCP)**。

   1. 在 “**端口范围**” 中，键入 OpenWire 端口 (`61617`)。

   1. 请执行以下操作之一：
      + 如果您想要限制访问特定 IP 地址，对于 **Source (源)**，请将 **Custom (自定义)** 选定，然后输入主机的 IP 地址 `MyBroker1`，然后输入 `/32`。（这会将 IP 地址转换为有效的 CIDR 记录）。有关更多信息，请参阅[弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。
**提示**  
要检索 `MyBroker1` 的 IP 地址，请在 [Amazon MQ 控制台](https://console.aws.amazon.com/amazon-mq/)上，选择代理的名称并导航到 **Details (详细信息)** 部分。
      + 如果所有代理都是私有的，并且属于相同的 VPC，则对于 **Source (源)**，请将 **Custom (自定义)** 选定，然后键入要编辑的安全组的 ID。
**注意**  
对于公有代理，您必须使用 IP 地址限制访问。

   1. 选择**保存**。

      您的代理现在可以接受入站连接。

## 步骤 2：为您的代理配置网络连接器
<a name="creating-configuring-network-of-brokers-configure-network-connectors"></a>

在允许代理之间的流量后，必须为其中一个代理配置网络连接器。

1. 编辑代理 `MyBroker1` 的配置修订。

   1. 在 **MyBroker1** 页上，选择**编辑**。

   1. 在 **“编辑 MyBroker 1”** 页面的 “**配置**” 部分，选择 “**查看**”。

      将会显示配置所使用的代理引擎类型和版本（例如，**Apache ActiveMQ 5.15.0**）。

   1. 在 **Configuration details** 选项卡上，会显示配置修订号、描述和 XML 格式的代理配置。

   1. 选择 **Edit configuration (编辑配置)**。

   1. 在配置文件的底部，取消注释 `<networkConnectors>` 部分并包含以下信息：
      + 网络连接器的 `name`。
      + 两个代理共有的 [ActiveMQ Web 控制台`username`](#creating-configuring-network-of-brokers-create-brokers)。
      + 启用 `duplex` 连接。
      + 请执行以下操作之一：
        + 如果您要将代理连接到单实例代理，请使用`static:`前缀和 OpenWire 终端节点`uri`。`MyBroker2`例如：

          ```
          <networkConnectors>
            <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
              uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
          </networkConnectors>
          ```
        + 如果您要将代理连接到活动/备用代理，请使用带有以下查询参数的两个代理`uri`的`static+failover`传输和 OpenWire终端节点。`?randomize=false&maxReconnectAttempts=0`例如：

          ```
          <networkConnectors>
            <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
              uri="static:(failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617,
              ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-west-2.amazonaws.com:61617)?randomize=false&amp;maxReconnectAttempts=0)"/>
          </networkConnectors>
          ```
**注意**  
不要包含 ActiveMQ 用户的登录凭证。

   1. 选择**保存**。

   1. 在 **Save revision (保存修订)** 对话框中，键入 `Add network of brokers connector for MyBroker2`。

   1. 选择 **Save (保存)** 以保存配置的新修订。

1. 编辑 `MyBroker1` 以将最新的配置修订设置为立即应用。

   1. 在 **MyBroker1** 页上，选择**编辑**。

   1. 在 **“编辑 MyBroker 1**” 页面的 “**配置**” 部分，选择 “**计划修改**”。

   1. 在 **Schedule broker modifications (计划代理修改)** 部分中，选择 **Immediately (立即)** 应用修改。

   1. 选择**应用**。

      `MyBroker1` 会重新启动，而且会应用您的配置修订。

   将会创建代理网络。

## 后续步骤
<a name="creating-configuring-network-of-brokers-test"></a>

配置代理网络后，可以通过生成和使用消息来测试它。

**重要**  
确保在端口 8162（*用于 ActiveMQ Web 控制台）和端口 61617（用于端点）`MyBroker1`上为代理启用来自本地计算机*[的入站连接](amazon-mq-working-java-example.md#quick-start-allow-inbound-connections)。 OpenWire  
您可能还需要调整安全组设置，以允许创建者和使用者连接到代理网络。

1. 在 [Amazon MQ 控制台](https://console.aws.amazon.com/amazon-mq/)上，导航到 **Connections (连接)** 部分，记下代理 `MyBroker1` 的 ActiveMQ Web 控制台终端节点。

1. 导航到代理 `MyBroker1` 的 ActiveMQ Web 控制台。

1. 要验证网桥是否已连接，请选择 **Network (网络)**。

   在**网络桥接**部分，`MyBroker2` 的名称和地址列在**远程代理**和**远程地址**列中。

1. 从任何可以访问代理 `MyBroker2` 的计算机上，创建一个使用者。例如：

   ```
   activemq consumer --brokerUrl "ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617" \
   	--user commonUser \
   	--password myPassword456 \
   	--destination queue://MyQueue
   ```

   使用者连接到的 OpenWire 终端节点`MyBroker2`并开始使用队列中的消息`MyQueue`。

1. 从任何可以访问代理 `MyBroker1` 的计算机上，创建一个创建者并发送一些消息。例如：

   ```
   activemq producer --brokerUrl "ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-1.mq.us-east-2.amazonaws.com:61617" \
   	--user commonUser \
   	--password myPassword456 \
   	--destination queue://MyQueue \
   	--persistent true \
   	--messageSize 1000 \
   	--messageCount 10000
   ```

   生产者连接到的 OpenWire 终端节点，`MyBroker1`并开始生成要排队的持久消息`MyQueue`。