如何在 Amazon MQ 代理上设置 RabbitMQ Federation 插件?

2 分钟阅读
0

我想使用 RabbitMQ Federation 插件将消息从本地代理分发到 Amazon MQ for RabbitMQ 代理。如何设置 Amazon MQ for RabbitMQ 代理以使用 RabbitMQ Federation 插件?

简短描述

要在 Amazon MQ for RabbitMQ 代理上设置 RabbitMQ Federation 插件,您必须在下游代理上设置以下内容:

  • 一个或多个用于定义至远程队列或交换机的联合连接的联合上游参数。
  • 用于允许联合特定远程队列或交换机的 RabbitMQ 策略。
  • 用于接收消息且绑定了新队列的交换机。

解决方法

注意:以下过程需要两个代理:上游代理(本地或基于云)和下游代理Amazon MQ for RabbitMQ 代理)。

创建一个或多个用于定义至远程队列或交换机的联合连接的联合上游参数

1.    打开 Amazon MQ 控制台

2.    在左侧导航窗格中,选择 Brokers(代理)。

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

4.    在 Connections(连接)窗格中,选择 RabbitMQ Web 控制台下面列出的 URL。此时将会打开下游代理的 RabbitMQ Web 控制台插件页面。

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

6.    在 RabbitMQ Web 控制台中,选择 Admin(管理员)选项卡。然后,在右侧导航窗格中,选择 Federation Upstreams(联合上游)。

7.    选择 Add a new upstream(添加新上游)。

8.    对于 Name(名称),请输入上游参数的名称。

9.    对于 URI,请删除默认的 amqp:// 文本并输入以下格式的上游代理的 URI:

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

10.    选择 Add upstream(添加上游)。

创建允许联合特定远程队列或交换机的 RabbitMQ 策略

1.    打开下游代理的 RabbitMQ Web 控制台。有关说明,请参阅本文使用 RabbitMQ Web 控制台创建联合上游参数部分的步骤 1-5。

2.    选择 Admin(管理员)选项卡。然后,在右侧导航窗格中,选择 Policies(策略)。

3.    选择 Add / update a policy(添加/更新策略)。

4.    在 Name(名称)中,输入策略的名称。

5.    对于 Pattern(模式),请输入与您想要允许联合的队列或交换机名称匹配的正则表达式。

6.    对于 Apply to(应用对象),请从下拉列表中选择 Exchanges(交换机)。

注意:Exchanges(交换机)应用策略后,策略将只会被应用到下游代理中的交换。

7.    对于 Priority(优先级),请输入数字 1

**注意:**Priority(优先级)设置用于确定当多个策略共有相同名称时应将哪个策略应用于交换机或队列。如果将 Priority(优先级)设置指定为 1,则会阻止采用相同名称的任何默认 Amazon MQ 策略覆盖该策略。

8.    对于 Definition(定义),请在 = 符号之前输入 federation-upstream-set 作为第一个文本框中的键。然后,在 = 符号之前输入 all 作为第二个文本框中的值。

9.    选择 Add / update policy(添加/更新策略)。

创建一个用于接收消息且绑定了新队列的交换机

1.    打开下游代理的 RabbitMQ Web 控制台。有关说明,请参阅本文使用 RabbitMQ Web 控制台创建联合上游参数部分的步骤 1-5。

2.    选择 Queues(队列)选项卡。

3.    在 Add a new queue(添加新队列)下的 Name(名称)中,输入用于接收消息的新队列的名称。

4.    选择 Add queue(添加队列)。

5.    选择 Exchanges(交换机)选项卡。

6.    在 Add a new exchange(添加新交换机)下的 Name(名称)中,输入与您在常见 RabbitMQ 策略时使用的交换名称匹配的正则表达式。

7.    选择 Add exchange(添加交换机)。

**注意:**RabbitMQ 也会自动在采用相同名称的上游代理上创建交换机。

8.    选择 Exchanges(交换机)选项卡。

9.    在 All exchanges(所有交换机)下,选择您创建的新交换机的名称。

10.    在 Bindings(绑定)下,对于 Add binding from this exchange(从此交换机添加绑定),请从下拉列表中选择 To queue(至队列)然后,输入您创建的队列的名称。

11.    对于 Routing key(路由键),请输入您选择的值。使用此值发送至上游代理上的交换机的消息也会发送至与此交换机绑定的队列。

12.    选择 Bind(绑定)。

测试设置

向上游代理的源交换机发送一条测试消息

1.    打开上游代理的 RabbitMQ Web 控制台。

**注意:**有关如何访问 RabbitMQ Web 控制台的更多信息,请参阅 RabbitMQ 文档中的管理插件

2.    选择 Exchanges(交换机)选项卡。然后,选择源交换机的名称。

3.    在左侧导航窗格中,选择 Publish message(发布消息)。此时将会打开 Publish message(发布消息)。

4.    在 Routing key(路由键)文本框中,输入您创建的路由键值。

5.    在 Payload(有效负载)文本框中,输入一条测试消息。

**注意:**您可以将 Headers(标头)和 Properties(属性)文本框留白。

6.    选择 Publish message(发布消息)按钮。测试消息将会发送至源交换机。如果已正确配置联合参数,则消息也会发送至下游代理的目标队列。

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

1.    打开下游代理的 RabbitMQ Web 控制台。

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

3.    在左侧导航窗格中,选择 Get messages(获取消息)。此时将会打开 Get messages(获取消息)部分。

4.    选择 Get messages(获取消息)按钮。如果已正确配置联合参数,则您向源交换机发送的测试消息将显示为有效负载值。


相关信息

如何在 Amazon MQ 代理上设置 RabbitMQ Shovel 插件?

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