如何在我的 Amazon MQ 代理上设置 RabbitMQ 铲子插件?

2 分钟阅读
0

我想使用 RabbitMQ 铲子插件将消息从本地代理转移到 Amazon MQ for RabbitMQ 代理。

简短描述

要在 Amazon MQ for RabbitMQ 代理上配置 RabbitMQ 铲子插件,请创建一个动态铲子(在 RabbitMQ 网站上)。要为 Amazon MQ for RabbitMQ 代理创建动态铲子,您可以使用以下任一选项:

以下解决方法需要两个代理:上游代理和下游代理。您可以使用本地的或基于云的上游代理。在这种情况下,下游代理是 Amazon MQ for RabbitMQ 代理。您可以在下游或上游代理上配置动态铲子。以下示例过程显示了如何在下游代理上创建动态铲子。

**注意:**Amazon MQ 不支持将私人 Amazon MQ 代理作为铲子目的地或静态铲子。有关详细信息,请参阅铲子插件

解决方法

使用 RabbitMQ Web 控制台在下游代理上创建动态铲子

**重要事项:**确保为那些在创建铲子的代理中不存在的队列指定统一资源标识符(URI)。

1.    打开 Amazon MQ 控制台

2.    在导航窗格中,选择代理

3.    在名称列中,选择下游代理的名称。

4.    在连接窗格中,选择 RabbitMQ Web 控制台下面列出的 URL。系统将会打开下游代理的 RabbitMQ Web 控制台登录页面。

5.    输入您代理的用户名密码。然后,选择登录,登录 RabbitMQ Web 控制台。

6.    在 RabbitMQ Web 控制台中,选择管理选项卡。然后,在右侧导航窗格中,选择铲子管理

7.    选择添加新铲子

8.    对于名称,输入铲子名称。

9.    对于来源,从下拉列表中选择 AMQP 0.9.1。然后完成以下步骤:
URI 右侧的下拉列表中,选择队列
队列下方的文本框中,输入上游代理的源队列名称。
对于 URI,删除默认 amqp:// 文本,然后按以下格式输入上游代理的 URI:

amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671

10.    对于目标,从下拉列表中选择 AMQP 0.9.1。然后完成以下步骤:
URI 右侧的下拉列表中,选择队列
队列下方的文本框中,输入下游代理的目标队列名称。
对于 URI,保留默认 amqp:// 文本,然后按以下格式输入下游代理的 URI:

amqp://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671

11.    选择添加铲子
**注意:**如果源队列和目标队列尚不存在,则 RabbitMQ 会自动创建它们。

使用 RabbitMQ 管理命令行工具在下游代理上创建动态铲子

**重要事项:**确保为那些在创建铲子的代理中不存在的队列指定统一资源标识符(URI)。

运行以下 curl 命令:

curl -u $SHOVEL_BROKER_USER:$SHOVEL_BROKER_PASSWORD \
-X PUT https://$SHOVEL_BROKER_ENDPOINT/api/parameters/shovel/%2f/rmq-lab-shovel \
-H "content-type: application/json" \
-d '{"value": {"src-protocol": "amqp091","src-uri": "amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671","src-queue": "shovel-demo-src-queue","dest-protocol": "amqp091","dest-uri": "amqps://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671","dest-queue": "shovel-demo-dest-queue"}}'

重要事项:

  • $SHOVEL_BROKER_USER$SHOVEL_BROKER_PASSWORD 替换为下游代理的凭证。
  • $SHOVEL_BROKER_ENDPOINT 替换为下游代理的端点。
  • $UPSTREAM_BROKER_USER$UPSTREAM_BROKER_PASSWORD 替换为上游代理的凭证。
  • $UPSTREAM_BROKER_ENDPOINT 替换为上游代理的端点。
  • $DOWNTREAM_BROKER_USER$DOWNTREAM_BROKER_PASSWORD 替换为下游代理的凭证。
  • $DOWNTREAM_BROKER_ENDPOINT 替换为下游代理的端点。
  • $SOURCE_QUEUE_NAME 替换为上游代理中源队列的名称。
  • $DESTINATION_QUEUE_NAME 替换为下游代理中目标队列的名称。

测试您的设置

向上游代理的源队列发送测试消息

1.    打开上游代理的 RabbitMQ Web 控制台。
**注意:**有关如何访问 RabbitMQ Web 控制台的详细信息,请参阅 RabbitMQ 文档中的管理插件

2.    选择队列选项卡。然后,选择源队列的名称。

3.    在导航窗格中,选择发布消息发布消息部分将会打开。

4.    在负载文本框中,输入测试消息。
注意:您可以将标题属性文本框留空。

5.    选择发布消息按钮。此操作会将测试消息发送到源队列。如果您正确配置了动态铲子,则铲子会接收消息并将其发送到下游代理的目标队列。

验证下游代理的目标队列是否已收到测试消息

1.    打开下游代理的 RabbitMQ Web 控制台。有关说明,请参阅使用 RabbitMQ Web 控制台在下游代理上创建动态铲子部分的步骤 1-5。

2.    选择队列选项卡。然后,选择目标队列的名称。

3.    在导航窗格中,选择获取消息获取消息部分将会打开。

4.    选择获取消息按钮。如果动态铲子配置正确,则您发送到源队列的测试消息将显示为负载值。

相关信息

将消息驱动的应用程序迁移到 Amazon MQ for RabbitMQ

如何在我的 Amazon MQ 代理上设置 RabbitMQ 联合身份验证插件?

AWS 官方
AWS 官方已更新 1 年前