Plugins - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Plugins

Amazon MQ 支持RBMQ 管理插件,它为管理 API 和 RabbitMQ Web 控制台提供支持。您可以使用 Web 控制台和管理 API 创建和管理代理用户和策略。要了解 Amazon MQ 如何自动管理代理策略以确保群集部署的高可用性,请参阅高可用性的群集部署

Amazon MQ 还支持, 和联合身份验证插件,您可以配置并使用它将消息从一个经纪商中的队列和交易所移动到其他经纪商实例中的队列和交易所。

铲插件

Amazon MQ 托管经纪商支持兔子 MQ 铲,允许您将消息从一个代理实例上的队列和交易所移动到另一个代理实例。您可以使用铲子连接松散耦合的代理,并将消息从消息负载较重的节点分发出来。

Amazon MQ 管理的 RabbitMQ 经纪商支持动态铲。动态铲使用运行时参数进行配置,并且可以随时通过客户端连接以编程方式启动和停止。例如,使用 RabbitMQ 管理 API,您可以创建PUT请求发送到以下 API 终端节点来配置动态铲子。在该示例中,{vhost}可以替换为经纪商的虚拟主机的名称,{name}替换为新动态铲的名称。

/api/parameters/shovel/{vhost}/{name}

在请求正文中,您必须指定队列或交换,但不能同时指定两者。下面的示例在src-queue中定义的远程队列和dest-queue。类似的,您可以使用。src-exchangedest-exchange参数来配置两个交易所之间的铲子。

{ "value": { "src-protocol": "amqp091", "src-uri": "amqp://localhost", "src-queue": "source-queue-name", "dest-protocol": "amqp091", "dest-uri": "amqps://b-c8352341-ec91-4a78-ad9c-a43f23d325bb.mq.us-west-2.amazonaws.com:5671", "dest-queue": "destination-queue-name" } }
重要

如果目标队列或交易所位于私人代理中,则无法在队列或交易所之间配置铲子。您只能在公共经纪商中的队列或交易所之间配置铲子,或者在私有经纪商中的源队列或交易所与目标队列或公共代理中的交易所之间配置铲子。

有关使用动态铲的更多信息,请参阅RabbitMQ 动态铲子插件

注意

Amazon MQ 不支持使用静态铲。

身份验证插件

Amazon MQ 支持联合交换和队列。通过联合,您可以在单独的经纪商上复制队列、交易所和消费者之间的消息流。联合队列和交易所使用点对点链接连接到其他经纪商中的对等项。默认情况下,联合交换路由邮件一次,联合队列可以根据使用者的需要移动消息任意次数。

您可以使用联合来允许下游代理使用来自交易所或队列的消息上游。您可以使用 RabbitMQ Web 控制台或管理 API 在 RabbitMQ Web 控制台或管理 API 上启用联合。

重要

如果下游队列或交易所位于私有代理中,则无法配置联合身份验证。您只能在公共经纪商中的队列或交易所之间配置联合,或者在私有经纪商中的上游队列或交易所与下游队列或交易所之间配置联合。

例如,使用管理 API,您可以执行下列操作以配置联合身份验证。

  • 配置一个或多个定义到其他节点的联合连接的上游。您可以使用 RabbitMQ Web 控制台或管理 API 定义联合连接。使用管理 API,您可以创建POST请求到/api/parameters/federation-upstream/%2f/my-upstream替换为以下请求正文。

    {"value":{"uri":"amqp://server-name","expires":3600000}}
  • 配置策略以使队列或交换成联合。可以使用 RabbitMQ Web 控制台或管理 API 配置策略。使用管理 API,您可以创建POST请求到/api/policies/%2f/federate-me替换为以下请求正文。

    {"pattern":"^amq\.", "definition":{"federation-upstream-set":"all"}, "apply-to":"exchanges"}
    注意

    请求主体假定服务器上的交换名称以amq。使用正则表达式^amq\.将确保所有名称以 “amq” 开头的交易所启用联合。您的 RabbitMQ 服务器上的交易所可以以不同的名称命名。

有关配置联合插件的更多信息,请参阅RabbitMQ 身份验证插件