Plugins
Amazon MQ for RabbitMQ also supports the following plugins.
RabbitMQ management plugin
Amazon MQ for RabbitMQ supports the RabbitMQ management plugin
Shovel plugin
Amazon MQ for RabbitMQ supports the RabbitMQ shovel plugin
Important
You cannot configure shovel between queues or exchanges if the shovel destination is a private broker.
Amazon MQ does not support using static shovels.
Only dynamic shovels
/api/parameters/shovel/{vhost}/{name}
In the request body, you must specify either a queue or an exchange but not both. This example below configures a dynamic shovel between a local queue specified in src-queue and a remote queue defined in dest-queue. Similarly, you can use src-exchange and dest-exchange parameters to configure a shovel between two exchanges.
{ "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-west2.amazonaws.com:5671", "dest-queue": "destination-queue-name" } }
Federation plugin
Amazon MQ supports federated exchanges and queues using the RabbitMQ federation plugin
You can use federation to allow a downstream broker to consume a message from an exchange or a queue on an upstream. You can enable federation on downstream brokers by using the RabbitMQ web console or the management API.
Important
You cannot configure federation if the upstream queue or exchange is in a private broker. You can only configure federation between queues or exchanges in public brokers, or between an upstream queue or exchange in a public broker, and a downstream queue or exchange in a private broker.
For example, using the management API, you can configure federation by doing the following.
-
Configure one or more upstreams that define federation connections to other nodes. You can define federation connections by using the RabbitMQ web console or the management API. Using the management API, you can create a POST request to /api/parameters/federation-upstream/%2f/myupstream with the following request body.
{"value":{"uri":"amqp://server-name","expires":3600000}} -
Configure a policy to enable your queues or exchanges to become federated. You can configure policies by using the RabbitMQ web console, or the management API. Using the management API, you can create a POST request to /api/policies/%2f/federate-me with the following request body.
{"pattern":"^amq\.", "definition":{"federation-upstream-set":"all"}, "apply-to":"exchanges"}Note
The request body assumes exchanges on the server are named beginning with amq. Using regular expression ^amq\. will ensure that federation is enabled for all exchanges whose names begin with "amq." The exchanges on your RabbitMQ server can be named differently.
Consistent Hash exchange plugin
Amazon MQ for RabbitMQ supports the RabbitMQ Consistent Hash Exchange Type plugin
For queues bound to a Consistent Hash exchange, the binding key is a number-as-a-string that determines the binding weight of each queue. Queues with a higher binding weight will receive a proportionally higher distribution of messages from the Consistent Hash exchange to which they are bound. In a Consistent Hash exchange topology, publishers can simply publish messages to the exchange, but consumers must be explicitly configured to consume messages from specific queues.
OAuth 2.0 plugin
Amazon MQ for RabbitMQ supports the OAuth 2 authentication backend plugin
LDAP plugin
Amazon MQ for RabbitMQ supports the LDAP authentication backend plugin
aws plugin
The aws plugin