

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立和設定 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`
+ `networkConnectionStartAsync`
+ ActiveMQ 文件中的 [Networks of Brokers (代理程式網路)](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 或對等 VPC 中。如需 VPC 的詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[什麼是 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、子網路或安全群組，則必須先建立這些項目。如需詳細資訊，請參閱《*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** 頁面的 **Details (詳細資訊) **區段中, 在 **Security and network (安全與網路)** 之下，選擇您的安全群組名稱或 ![\[Pencil icon indicating an edit or modification action.\]](http://docs.aws.amazon.com/zh_tw/amazon-mq/latest/developer-guide/images/amazon-mq-tutorials-broker-details-link.png)。

   隨即會顯示 EC2 儀表板的 **Security Groups (安全群組)** 頁面。

1. 從安全群組清單選擇您的安全群組。

1. 在頁面的最下方，選擇 **Inbound (傳入)**，然後選擇 **Edit (編輯)**。

1. 在 **Edit inbound rules (編輯傳入規則)** 對話方塊中，新增 OpenWire 端點的規則。

   1. 選擇 **Add Rule** (新增規則)。

   1. 針對**類型**，選取**自訂 TCP**。

   1. 針對 **Port Range (連接埠範圍)**，輸入 OpenWire 連接埠 (`61617`)。

   1. 執行以下任意一項：
      + 如果您想限制對特定 IP 地址的存取，則請讓 **Source (來源)** 維持選取 **Custom (自訂)**，然後輸入 `MyBroker1` 的 IP 地址，後面接 `/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 (MyBroker1)** 頁面上，選擇 **Edit (編輯)**。

   1. 在 **Edit MyBroker1 (編輯 MyBroker1)** 頁面的 **Configuration (組態)** 區塊中，選擇 **View (檢視)**。

      隨即會顯示組態所使用的代理程式引擎類型和版本 (例如 **Apache ActiveMQ 5.15.0 (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:` 使用 `uri` 前綴和 OpenWire 端點 `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>
          ```
        + 如果您要將代理程式連接到運作中/待命的代理程式，請以下列查詢參數 `?randomize=false&maxReconnectAttempts=0` 針對兩個代理程式使用 `static+failover` 傳輸和 OpenWire 端點 `uri`。例如：

          ```
          <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 (MyBroker1)** 頁面上，選擇 **Edit (編輯)**。

   1. 在 **Edit MyBroker1** (編輯 MyBroker1) 頁面的 **Configuration** (組態) 區段中，選擇 **Schedule Modifications** (排程修改)。

   1. 在 **Schedule broker modifications (排程代理程式修改)** 區塊中，選擇 **Immediately (立即)** 套用修改。

   1. 選擇**套用**。

      `MyBroker1` 會重新啟動並套用您組態的修改內容。

   代理程式網路已建立。

## 後續步驟
<a name="creating-configuring-network-of-brokers-test"></a>

設定代理程式網路之後，您可以藉由產生和使用訊息，來測試該網路。

**重要**  
請務必針對`MyBroker1`連接埠 8162 (適用於 ActiveMQ Web 主控台) 和連接埠 61617 (適用於 OpenWire 端點) 上的代理程式，*從您的本機電腦*[啟用傳入連線](amazon-mq-working-java-example.md#quick-start-allow-inbound-connections)。  
您可能也需要調整安全群組的設定，來允許生產者和使用者連線到代理程式網路。

1. 在 [Amazon MQ 主控台](https://console.aws.amazon.com/amazon-mq/)中，瀏覽至 **Connections (連線)** 區塊，然後記下代理程式 `MyBroker1` 的 ActiveMQ Web 主控台端點。

1. 瀏覽至代理程式 `MyBroker1` 的 ActiveMQ Web 主控台。

1. 若要確認網路橋接器已連接，請選擇 **Network (網路)**。

   在 **Network Bridges** (網路橋接器) 區段中，`MyBroker2` 的名稱和地址會列於 **Remote Broker** (遠端代理程式) 和 **Remote Address** (遠端地址) 欄中。

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
   ```

   使用者可連線到 `MyBroker2` 的 OpenWire 端點，並開始使用來自佇列 `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
   ```

   生產者可連線到 `MyBroker1` 的 OpenWire 端點，並開始生產要傳送到佇列 `MyQueue` 的持久性訊息。