本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立和設定 Amazon MQ 代理程式網路
代理程式網路由多個同時作用中單一執行個體代理程式或作用中/待命代理程式組成。您可以根據您的應用程式需求,例如高可用性和可擴展性,在各種拓撲 (例如,集中器、、hub-and-spokes樹狀結構或網格) 中設定代理程式網路。例如,中樞和支點代理程式網路網路可以提高恢復能力,如果一個代理程式無法連線,則會保留訊息。具有集中器拓撲的代理程式網路可以從接受傳入訊息的大量代理程式收集訊息,並將它們集中到更多中央代理程式,以便更妥善處理許多傳入訊息的載入。在此教學中,您將了解如何使用來源與目的拓撲來建立包含兩個代理程式的代理程式網路。
如需概念性的概觀和詳細的組態資訊,請參閱下列內容:
您可以使用 Amazon MQ 主控台來建立 Amazon MQ 代理程式網路。由於您可以同時開始建立兩個代理程式,因此這項程序約需 15 分鐘的時間完成。
必要條件
若要建立代理程式網路,您必須具有下列項目:
-
兩個或多個同時運作中的代理程式 (在本教學課程中命名為
MyBroker1
和MyBroker2
)。如需關於建立代理程式的詳細資訊,請參閱開始使用:建立並連線到 ActiveMQ 代理程式。 -
兩個代理程式必須位於相同 VPC或對等 中VPCs。如需 的詳細資訊VPCs,請參閱 Amazon 使用者指南中的什麼是 AmazonVPC?,以及 Amazon VPC 對等指南 中的什麼是對等?。 VPC VPC
-
兩個使用者對於兩個代理程式具有相同的登入憑證。如需有關建立使用者的詳細資訊,請參閱建立 ActiveMQ 代理程式使用者。
注意
將LDAP身分驗證與代理程式網路整合時,請確定使用者同時以 ActiveMQ 代理程式和LDAP使用者身分存在。
下列的範例使用兩個單一執行個體代理程式。不過,您可以使用運作中/待命的代理程式或代理程式部署模式的組合,來建立代理程式的網路。
步驟 1:允許代理程式之間的流量
建立代理程式之後,您必須允許裝置之間的流量。
-
在 Amazon MQ 主控台
的 MyBroker2 頁面上,在詳細資訊區段中,在安全和網路 下,選擇安全群組的名稱或 。 EC2 儀表板的安全群組頁面隨即顯示。
-
從安全群組清單選擇您的安全群組。
-
在頁面的最下方,選擇 Inbound (傳入),然後選擇 Edit (編輯)。
-
在編輯傳入規則對話方塊中,新增 OpenWire 端點的規則。
-
選擇 Add Rule (新增規則)。
-
對於類型 ,選取自訂 TCP。
-
對於連接埠範圍 ,輸入 OpenWire 連接埠 (
61617
)。 -
執行以下任意一項:
-
如果您想限制對特定 IP 地址的存取,則請讓 Source (來源) 維持選取 Custom (自訂),然後輸入
MyBroker1
的 IP 地址,後面接/32
。(這會將 IP 地址轉換為有效的CIDR記錄)。如需詳細資訊,請參閱彈性網路界面。提示
若要擷取
MyBroker1
的 IP 地址,請在 Amazon MQ 主控台上,選擇代理程式的名稱,然後瀏覽至 Details (詳細資訊) 區塊。 -
如果所有代理程式都是私有且屬於相同的 VPC,則對於來源 ,請保持選取自訂,然後輸入您正在編輯的安全群組 ID。
注意
用於公有代理程式時,您必須使用 IP 地址來限制存取。
-
-
選擇 Save (儲存)。
您的代理程式現在已可接受傳入連線。
-
步驟 2:設定代理程式的網路連接器
在允許代理程式之間的流量之後,您必須針對其中一個代理程式,設定其網路連接器。
-
編輯代理程式
MyBroker1
的組態版本。-
在 MyBroker1 頁面上,選擇編輯 。
-
在編輯 MyBroker1 頁面上的組態區段中,選擇檢視 。
隨即會顯示組態所使用的代理程式引擎類型和版本 (例如 Apache ActiveMQ 5.15.0 (Apache ActiveMQ 5.15.0))。
-
在組態詳細資訊索引標籤上,會以 XML 格式顯示組態修訂編號、描述和代理程式組態。
-
選擇 Edit Configuration (編輯組態)。
-
在組態檔案的底部,將
<networkConnectors>
部分改成非註解,然後加入下列的資訊:-
網路連接器的
name
。 -
兩個代理程式共同的 ActiveMQ Web 主控台username。
-
啟用
duplex
連線。 -
執行以下任意一項:
-
如果您要將代理程式連接至單一執行個體代理程式,請使用
uri
的static:
字首和 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> -
如果您要將代理程式連接至作用中/待命代理程式,請使用傳輸
static+failover
和 OpenWire兩個代理程式uri
的端點,具有下列查詢參數?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-east-2.amazonaws.com:61617
)?randomize=false&maxReconnectAttempts=0)"/> </networkConnectors>
注意
請勿納入 ActiveMQ 使用者的登入憑證。
-
-
-
選擇 Save (儲存)。
-
在 Save revision (儲存修改) 對話方塊中,輸入
Add network of brokers connector for MyBroker2
。 -
選擇 Save (儲存) 以儲存組態的新版本。
-
-
編輯
MyBroker1
以設定立即套用最新的組態修改內容。-
在 MyBroker1 頁面上,選擇編輯 。
-
在編輯 MyBroker1 頁面上的組態區段中,選擇排程修改 。
-
在 Schedule broker modifications (排程代理程式修改) 區塊中,選擇 Immediately (立即) 套用修改。
-
選擇套用。
MyBroker1
會重新啟動並套用您組態的修改內容。
代理程式網路已建立。
-
後續步驟
設定代理程式網路之後,您可以藉由產生和使用訊息,來測試該網路。
重要
請確定您在連接埠 8162 (適用於 ActiveMQ Web 主控台) 和連接埠 61617 (適用於 OpenWire端點) MyBroker1
上,從本機機器為代理程式啟用傳入連線。
您可能也需要調整安全群組的設定,來允許生產者和使用者連線到代理程式網路。
-
在 Amazon MQ 主控台
中,瀏覽至 Connections (連線) 區塊,然後記下代理程式 MyBroker1
的 ActiveMQ Web 主控台端點。 -
瀏覽至代理程式
MyBroker1
的 ActiveMQ Web 主控台。 -
若要確認網路橋接器已連接,請選擇 Network (網路)。
在 Network Bridges (網路橋接器) 區段中,
MyBroker2
的名稱和地址會列於 Remote Broker (遠端代理程式) 和 Remote Address (遠端地址) 欄中。 -
從對代理程式
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
。 -
從對代理程式
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
。