创建和配置 Amazon MQ 代理网络 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建和配置 Amazon MQ 代理网络

代理网络由多个同时活动的单实例代理主动/备用代理组成。您可以根据应用程序的需求(例如高可用性和可扩展性),采用各种拓扑(例如,集中器中心辐射型树形网格)配置代理网络。例如,中心辐射型代理网络可以提高弹性,并在无法访问某个代理时保留消息。具有集中器拓扑的代理网络可以从接受传入消息的大量代理处收集消息,并将消息集中到更中心的代理,以更好地处理许多传入消息负载。在本教程中,您将了解如何使用源和接收器拓扑来创建一个具有两个代理的代理网络。

有关概念概述和详细配置信息,请参阅以下内容:

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

先决条件

要创建代理网络,您必须具备以下条件:

  • 两个或多个同时处于活动状态的代理(在本教程中命名为 MyBroker1MyBroker2)。有关创建代理的更多信息,请参阅Creating and configuring a broker

  • 这两个代理必须位于相同的 VPC 或对等的 VPC 中。有关 VPC 的更多信息,请参阅《Amazon VPC 用户指南》中的什么是 Amazon VPC?和《Amazon VPC 对等连接指南》中的什么是 VPC 对等连接?

    重要

    如果您没有默认 VPC、子网或安全组,则必须先创建它们。有关更多信息,请参阅《Amazon VPC 用户指南》中的以下内容:

  • 两个用户对两个代理程序具有相同的登录凭证。有关创建用户的更多信息,请参见 创建和管理 ActiveMQ 代理用户

    注意

    将 LDAP 身份验证与代理网络集成时,请确保该用户既作为 ActiveMQ 代理,也作为 LDAP 用户存在。

以下示例使用两个单实例代理。但是,您可以使用主动/备用代理或代理部署模式的组合来创建代理网络。

步骤 1:允许代理之间的流量

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

  1. Amazon MQ 控制台上,在 MyBroker2 页面的 Details (详细信息) 部分中的 Security and network (安全与网络) 下,选择您的安全组名称或

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

  2. 从安全组列表中,选择您的安全组。

  3. 在页面底部,选择 Inbound (入站),然后选择 Edit (编辑)

  4. Edit inbound rules (编辑入站规则) 对话框中,为 OpenWire 终端节点添加规则。

    1. 选择 Add Rule(添加规则)。

    2. 对于 Type (类型),选择 Custom TCP (自定义 TCP)

    3. 对于 Port Range (端口范围),键入 OpenWire 端口 (61617)。

    4. 请执行下列操作之一:

      • 如果您想要限制访问特定 IP 地址,对于 Source (源),请将 Custom (自定义) 选定,然后输入主机的 IP 地址 MyBroker1,然后输入 /32。(这会将 IP 地址转换为有效的 CIDR 记录)。有关更多信息,请参阅弹性网络接口

        提示

        要检索 MyBroker1 的 IP 地址,请在 Amazon MQ 控制台上,选择代理的名称并导航到 Details (详细信息) 部分。

      • 如果所有代理都是私有的,并且属于相同的 VPC,则对于 Source (源),请将 Custom (自定义) 选定,然后键入要编辑的安全组的 ID。

        注意

        对于公有代理,您必须使用 IP 地址限制访问。

    5. 选择 Save(保存)。

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

步骤 2:为您的代理配置网络连接器

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

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

    1. MyBroker1 页面上,选择 Edit (编辑)

    2. Edit MyBroker1 (编辑 MyBroker1) 页面上的 Configuration (配置) 部分中,选择 View (视图)

      将会显示配置所使用的代理引擎类型和版本(例如,Apache ActiveMQ 5.15.0)。

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

    4. 选择 Edit configuration (编辑配置)

    5. 在配置文件的底部,取消注释 <networkConnectors> 部分并包含以下信息:

      • 网络连接器的 name

      • 两个代理共有的 ActiveMQ Web 控制台username

      • 启用 duplex 连接。

      • 请执行下列操作之一:

        • 如果要将代理连接到单实例代理,请对 MyBroker2 使用 static: 前缀和 OpenWire 终端节点 uri。例如:

          <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-east-2.amazonaws.com:61617)?randomize=false&amp;maxReconnectAttempts=0)"/> </networkConnectors>
        注意

        不要包含 ActiveMQ 用户的登录凭证。

    6. 选择 Save(保存)。

    7. Save revision (保存修订) 对话框中,键入 Add network of brokers connector for MyBroker2

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

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

    1. MyBroker1 页面上,选择 Edit (编辑)

    2. Edit MyBroker1 (编辑 MyBroker1) 页面上的 Configuration (配置) 部分中,选择 Schedule Modifications (计划修改)

    3. Schedule broker modifications (计划代理修改) 部分中,选择 Immediately (立即) 应用修改。

    4. 选择 Apply(应用)。

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

    将会创建代理网络。

后续步骤

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

重要

确保在端口 8162(适用于 ActiveMQ Web 控制台)和端口 61617(适用于 OpenWire 终端节点)上为代理 MyBroker1 启用从本地计算机入站连接

您可能还需要调整安全组设置,以允许创建者和使用者连接到代理网络。

  1. Amazon MQ 控制台上,导航到 Connections (连接) 部分,记下代理 MyBroker1 的 ActiveMQ Web 控制台终端节点。

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

  3. 要验证网桥是否已连接,请选择 Network (网络)

    Network Bridges(网桥)部分中,MyBroker2 的名称和地址列在 Remote Broker(远程代理)和 Remote Address(远程地址)列中。

  4. 从任何可以访问代理 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 中使用消息。

  5. 从任何可以访问代理 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 中生成持久消息。