本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建和配置 Amazon MQ 代理网络
代理网络由多个同时活动的单实例代理或主动/备用代理组成。您可以根据应用程序的需求(例如高可用性和可扩展性)在各种拓扑中配置代理网络(例如集中器hub-and-spokes、树形或网状)。例如,中心辐射型代理网络可以提高弹性,并在无法访问某个代理时保留消息。具有集中器拓扑的代理网络可以从接受传入消息的大量代理处收集消息,并将消息集中到更中心的代理,以更好地处理许多传入消息负载。在本教程中,您将了解如何使用源和接收器拓扑来创建一个具有两个代理的代理网络。
有关概念概述和详细配置信息,请参阅以下内容:
-
ActiveMQ 文档中的代理网络
您可以使用 Amazon MQ 控制台创建 Amazon MQ 代理网络。因为您可以开始并行创建这两个代理,所以此过程大约需要 15 分钟。
先决条件
要创建代理网络,您必须具备以下条件:
-
两个或多个同时处于活动状态的代理(在本教程中命名为
MyBroker1
和MyBroker2
)。有关创建代理的更多信息,请参阅入门:创建并连接 ActiveMQ 代理。 -
这两个经纪人必须处于同一个VPC或对等状态。VPCs有关的更多信息VPCs,请参阅 Amazon 是什么VPC? 在《Amazon VPC 用户指南》和《什么是对VPC等互连?》中 在《Amazon 对VPC等互连指南》中。
-
两个用户对两个代理程序具有相同的登录凭证。有关创建用户的更多信息,请参见 创建 ActiveMQ 代理用户。
注意
将LDAP身份验证与代理网络集成时,请确保用户既作为ActiveMQ代理存在,又作为用户存在。LDAP
以下示例使用两个单实例代理。但是,您可以使用主动/备用代理或代理部署模式的组合来创建代理网络。
步骤 1:允许代理之间的流量
创建代理后,必须允许它们之间的流量。
-
在 Amazon MQ 控制台
上,在第 MyBroker2 页的 “详细信息” 部分的 “安全和网络” 下,选择您的安全组的名称或。 屏幕上将显示EC2控制面板的 “安全组” 页面。
-
从安全组列表中,选择您的安全组。
-
在页面底部,选择 Inbound (入站),然后选择 Edit (编辑)。
-
在编辑入站规则对话框中,为 OpenWire 终端节点添加规则。
-
选择添加规则。
-
在 “类型” 中,选择 “自定义” TCP。
-
在 “端口范围” 中,键入 OpenWire 端口 (
61617
)。 -
请执行以下操作之一:
-
如果您想要限制访问特定 IP 地址,对于 Source (源),请将 Custom (自定义) 选定,然后输入主机的 IP 地址
MyBroker1
,然后输入/32
。(这会将 IP 地址转换为有效CIDR记录)。有关更多信息,请参阅弹性网络接口。提示
要检索
MyBroker1
的 IP 地址,请在 Amazon MQ 控制台上,选择代理的名称并导航到 Details (详细信息) 部分。 -
如果所有代理都是私有的,并且属于同一个代理VPC,则对于 “源”,选择 “自定义”,然后键入您正在编辑的安全组的 ID。
注意
对于公有代理,您必须使用 IP 地址限制访问。
-
-
选择保存。
您的代理现在可以接受入站连接。
-
步骤 2:为您的代理配置网络连接器
在允许代理之间的流量后,必须为其中一个代理配置网络连接器。
-
编辑代理
MyBroker1
的配置修订。-
在 MyBroker1 页上,选择编辑。
-
在 “编辑 MyBroker 1” 页面的 “配置” 部分,选择 “查看”。
将会显示配置所使用的代理引擎类型和版本(例如,Apache ActiveMQ 5.15.0)。
-
在配置详细信息选项卡上,以XML格式显示配置修订号、描述和代理配置。
-
选择 Edit configuration (编辑配置)。
-
在配置文件的底部,取消注释
<networkConnectors>
部分并包含以下信息:-
网络连接器的
name
。 -
两个代理共有的 ActiveMQ Web 控制台username。
-
启用
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-east-2.amazonaws.com:61617
)?randomize=false&maxReconnectAttempts=0)"/> </networkConnectors>
注意
不要包含 ActiveMQ 用户的登录凭证。
-
-
-
选择保存。
-
在 Save revision (保存修订) 对话框中,键入
Add network of brokers connector for MyBroker2
。 -
选择 Save (保存) 以保存配置的新修订。
-
-
编辑
MyBroker1
以将最新的配置修订设置为立即应用。-
在 MyBroker1 页上,选择编辑。
-
在 “编辑 MyBroker 1” 页面的 “配置” 部分,选择 “计划修改”。
-
在 Schedule broker modifications (计划代理修改) 部分中,选择 Immediately (立即) 应用修改。
-
选择 应用。
MyBroker1
会重新启动,而且会应用您的配置修订。
将会创建代理网络。
-
后续步骤
配置代理网络后,可以通过生成和使用消息来测试它。
重要
确保在端口 8162(用于 ActiveMQ Web 控制台)和端口 61617(用于端点)MyBroker1
上为代理启用来自本地计算机的入站连接。 OpenWire
您可能还需要调整安全组设置,以允许创建者和使用者连接到代理网络。
-
在 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
。