No description or website provided.
Switch branches/tags
rabbitmq_v3_7_0_milestone18 rabbitmq_v3_7_0_milestone17 rabbitmq_v3_7_0_milestone16 rabbitmq_v3_7_0_milestone15 rabbitmq_v3_7_0_milestone14 rabbitmq_v3_7_0_milestone13 rabbitmq_v3_7_0_milestone12 rabbitmq_v3_7_0_milestone11 rabbitmq_v3_7_0_milestone10 rabbitmq_v3_7_0_milestone9 rabbitmq_v3_7_0_milestone8 rabbitmq_v3_7_0_milestone7 rabbitmq_v3_7_0_milestone6 rabbitmq_v3_7_0_milestone5 rabbitmq_v3_7_0_milestone4 rabbitmq_v3_7_0_milestone3 rabbitmq_v3_7_0_milestone2 rabbitmq_v3_7_0_milestone1 rabbitmq_v3_6_14 rabbitmq_v3_6_13 rabbitmq_v3_6_13_rc2 rabbitmq_v3_6_13_rc1 rabbitmq_v3_6_13_milestone1 rabbitmq_v3_6_12 rabbitmq_v3_6_12_rc3 rabbitmq_v3_6_12_rc2 rabbitmq_v3_6_12_rc1 rabbitmq_v3_6_11 rabbitmq_v3_6_11_rc3 rabbitmq_v3_6_11_rc2 rabbitmq_v3_6_11_rc1 rabbitmq_v3_6_11_milestone5 rabbitmq_v3_6_11_milestone4 rabbitmq_v3_6_11_milestone3 rabbitmq_v3_6_11_milestone2 rabbitmq_v3_6_11_milestone1 rabbitmq_v3_6_10 rabbitmq_v3_6_10_rc2 rabbitmq_v3_6_10_rc1 rabbitmq_v3_6_10_milestone4 rabbitmq_v3_6_10_milestone3 rabbitmq_v3_6_10_milestone2 rabbitmq_v3_6_10_milestone1 rabbitmq_v3_6_9 rabbitmq_v3_6_8 rabbitmq_v3_6_7 rabbitmq_v3_6_7_rc3 rabbitmq_v3_6_7_rc2 rabbitmq_v3_6_7_rc1 rabbitmq_v3_6_7_milestone6 rabbitmq_v3_6_7_milestone5 rabbitmq_v3_6_7_milestone4 rabbitmq_v3_6_7_milestone3 rabbitmq_v3_6_7_milestone2 rabbitmq_v3_6_7_milestone1 rabbitmq_v3_6_6 rabbitmq_v3_6_6_rc2 rabbitmq_v3_6_6_rc1 rabbitmq_v3_6_6_milestone5 rabbitmq_v3_6_6_milestone4 rabbitmq_v3_6_6_milestone3 rabbitmq_v3_6_6_milestone2 rabbitmq_v3_6_6_milestone1 rabbitmq_v3_6_5 rabbitmq_v3_6_5_milestone2 rabbitmq_v3_6_5_milestone1 rabbitmq_v3_6_4 rabbitmq_v3_6_4_rc1 rabbitmq_v3_6_4_milestone2 rabbitmq_v3_6_4_milestone1 rabbitmq_v3_6_3 rabbitmq_v3_6_3_rc3 rabbitmq_v3_6_3_rc2 rabbitmq_v3_6_3_rc1 rabbitmq_v3_6_3_milestone2 rabbitmq_v3_6_3_milestone1 rabbitmq_v3_6_2 rabbitmq_v3_6_2_rc4 rabbitmq_v3_6_2_rc3 rabbitmq_v3_6_2_rc2 rabbitmq_v3_6_2_rc1 rabbitmq_v3_6_2_milestone5 rabbitmq_v3_6_2_milestone4 rabbitmq_v3_6_2_milestone3 rabbitmq_v3_6_2_milestone2 rabbitmq_v3_6_2_milestone1 rabbitmq_v3_6_1 rabbitmq_v3_6_1_rc2 rabbitmq_v3_6_1_rc1 rabbitmq_v3_6_0 rabbitmq_v3_6_0_rc3 rabbitmq_v3_6_0_rc2
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples/java
src
test
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
LICENSE-MPL-RabbitMQ
Makefile
README.md
erlang.mk
rabbitmq-components.mk

README.md

RabbitMQ Management Exchange Type

This plugin provides a (slightly hackish) mechanism for making requests to the RabbitMQ Management API while talking AMQP. In essence, it allows you to publish messages to a special exchange type, which then makes an HTTP request to localhost, and publishes the response to a reply queue.

It currently has one notable limitation: the user name and password for the HTTP request are taken from your configuration file rather than the AMQP connection. If there is sufficient interest in this plugin, we'll work to remove this limitation.

Installation

Install the corresponding .ez files from our Community Plugins page.

After installing, enable it with the following command:

rabbitmq-plugins enable rabbitmq_management_exchange

Usage

Declare an exchange of type x-management. Declare a reply queue (of any name). Then publish requests to your new exchange. The exchange will accept the requests and publish responses to your reply queue.

The format of a request message is:

  • Query path (e.g. "/overview") in the routing key.
  • Reply queue name in the 'reply_to' property.
  • HTTP method (e.g. "GET") in the 'type' property.
  • JSON body (if there is one) in the message payload.

The format of a reply message is:

  • Reply queue name in the routing key.
  • HTTP response code (e.g. "200") in the 'type' property.
  • JSON response (if there is one) in the message payload.

If you set a correlation-id in the request, it will be preserved in the response.

Since the exchange accepts requests itself it does not need to be bound to any queue (and indeed it's an error to do so). This means that if you publish to the exchange with "mandatory" set, your message will be returned as unrouted - since it did not go to any queue.

Configuration

It is possible to configure the plugin to use a non-default user to authenticate HTTP API requests:

[
  {rabbitmq_management_exchange, [{username, "my-username"},
                                  {password, "my-password"}]}
].

If the above section is skipped, guest/guest will be used.

See RabbitMQ configuration guide for details.

Examples

There is a usage example using the Java client in examples/java. See also the test/src directory for a simple test using the Erlang client.

Building from Source

Build it like any other plugin. See Plugin Development.