创建和配置 Amazon MQ 代理网络
代理网络由多个同时活动的单实例代理或主动/备用代理组成。在本教程中,您将了解如何使用源和接收器拓扑来创建一个具有两个代理的代理网络。
有关概念概述和详细配置信息,请参阅以下内容:
您可以使用 Amazon MQ 控制台创建 Amazon MQ 代理网络。因为您可以开始并行创建这两个代理,所以此过程大约需要 15 分钟。
先决条件
要创建代理网络,您必须具备以下条件:
-
两个或多个同时处于活动状态的代理(在本教程中命名为
MyBroker1和MyBroker2)。有关创建代理的更多信息,请参阅入门:创建并连接 ActiveMQ 代理。 -
这两个代理必须位于相同的 VPC 或对等的 VPC 中。有关 VPC 的更多信息,请参阅《Amazon VPC 用户指南》中的什么是 Amazon VPC?和《Amazon VPC 对等连接指南》中的什么是 VPC 对等连接?。
-
两个用户对两个代理程序具有相同的登录凭证。有关创建用户的更多信息,请参见 创建 ActiveMQ 代理用户。
注意
将 LDAP 身份验证与代理网络集成时,请确保该用户既作为 ActiveMQ 代理,也作为 LDAP 用户存在。
以下示例使用两个单实例代理。但是,您可以使用主动/备用代理或代理部署模式的组合来创建代理网络。
步骤 1:允许代理之间的流量
创建代理后,必须允许它们之间的流量。
-
在 Amazon MQ 控制台
上,在 MyBroker2 页面的 Details (详细信息) 部分中的 Security and network (安全与网络) 下,选择您的安全组名称或
。此时将显示 EC2 Dashboard 的 Security Groups (安全组) 页面。
-
从安全组列表中,选择您的安全组。
-
在页面底部,选择 Inbound (入站),然后选择 Edit (编辑)。
-
在 Edit inbound rules (编辑入站规则) 对话框中,为 OpenWire 终端节点添加规则。
-
选择添加规则。
-
对于 Type (类型),选择 Custom TCP (自定义 TCP)。
-
对于 Port Range (端口范围),键入 OpenWire 端口 (
61617)。 -
请执行以下操作之一:
-
如果您想要限制访问特定 IP 地址,对于 Source (源),请将 Custom (自定义) 选定,然后输入主机的 IP 地址
MyBroker1,然后输入/32。(这会将 IP 地址转换为有效的 CIDR 记录)。有关更多信息,请参阅弹性网络接口。提示
要检索
MyBroker1的 IP 地址,请在 Amazon MQ 控制台上,选择代理的名称并导航到 Details (详细信息) 部分。 -
如果所有代理都是私有的,并且属于相同的 VPC,则对于 Source (源),请将 Custom (自定义) 选定,然后键入要编辑的安全组的 ID。
注意
对于公有代理,您必须使用 IP 地址限制访问。
-
-
选择保存。
您的代理现在可以接受入站连接。
-
步骤 2:为您的代理配置网络连接器
在允许代理之间的流量后,必须为其中一个代理配置网络连接器。
-
编辑代理
MyBroker1的配置修订。-
在 MyBroker1 页面上,选择 Edit (编辑)。
-
在 Edit MyBroker1 (编辑 MyBroker1) 页面上的 Configuration (配置) 部分中,选择 View (视图)。
将会显示配置所使用的代理引擎类型和版本(例如,Apache ActiveMQ 5.15.0)。
-
在 Configuration details 选项卡上,会显示配置修订号、描述和 XML 格式的代理配置。
-
选择 Edit configuration (编辑配置)。
-
在配置文件的底部,取消注释
<networkConnectors>部分并包含以下信息:-
网络连接器的
name。 -
两个代理共有的 ActiveMQ Web 控制台username。
-
启用
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&maxReconnectAttempts=0)"/> </networkConnectors>
注意
不要包含 ActiveMQ 用户的登录凭证。
-
-
-
选择保存。
-
在 Save revision (保存修订) 对话框中,键入
Add network of brokers connector for MyBroker2。 -
选择 Save (保存) 以保存配置的新修订。
-
-
编辑
MyBroker1以将最新的配置修订设置为立即应用。-
在 MyBroker1 页面上,选择 Edit (编辑)。
-
在 Edit MyBroker1 (编辑 MyBroker1) 页面上的 Configuration (配置) 部分中,选择 Schedule Modifications (计划修改)。
-
在 Schedule broker modifications (计划代理修改) 部分中,选择 Immediately (立即) 应用修改。
-
选择应用。
MyBroker1会重新启动,而且会应用您的配置修订。
将会创建代理网络。
-
后续步骤
配置代理网络后,可以通过生成和使用消息来测试它。
重要
确保在端口 8162(适用于 ActiveMQ Web 控制台)和端口 61617(适用于 OpenWire 终端节点)上为代理 MyBroker1 启用从本地计算机的入站连接。
您可能还需要调整安全组设置,以允许创建者和使用者连接到代理网络。
-
在 Amazon MQ 控制台
上,导航到 Connections (连接) 部分,记下代理 MyBroker1的 ActiveMQ Web 控制台终端节点。 -
导航到代理
MyBroker1的 ActiveMQ Web 控制台。 -
要验证网桥是否已连接,请选择 Network (网络)。
在网络桥接部分,
MyBroker2的名称和地址列在远程代理和远程地址列中。 -
从任何可以访问代理
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中使用消息。 -
从任何可以访问代理
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中生成持久消息。