Integrating Mule and RabbitMQ
Integrating Mule and RabbitMQ
RabbitMQ can be deployed in distributed environments to meet high-scale, high-availability requirements.
Join the DZone community and get the full member experience.Join For Free
RabbitMQis one of the open source message brokers or queue manager software, which uses Advanced Message Queuing Protocol (AMQP). It implements a broker architecture, meaning that messages are queued on a central node called Exchange before being sent to clients. This approach makes RabbitMQ very easy to use and deploy. RabbitMQ can be deployed in distributed environments to meet high-scale, high-availability requirements.
The Message Flow in RabbitMQ
Integrating RabbitMQ with Mule and publishing an Employee Details onto a queue using RabbitMQ.
- Mule Anypoint Studio.
- RabbitMQ server and server details.
To Integrate RabbitMQ with Mule, you need to have AMQP connector installed in Anypoint studio. So, first, download and install AMQP connector from the Anypoint exchange. Once the connector is installed, you can find all the endpoints and transformers related to AMQP in Mule Palette section.
Creating Mule Project to Publish Messages to RabbitMQ:
Once the project is created, configure HTTP endpoint in the source part of the flow. Once this is done, drag and drop AMQP connector onto the process part of the flow.
Unlike other connectors, AMQP connector does not have connector configuration available in the connector to configure the connection details. So, we have to create a connection in global elements, and from there, the connector picks the connection details.
Configuring the AMQP Connector:
Go to global elements and select create the new global element.
Search for AMQP and select AMQP Connector.
Now go to protocol part and provide all the RabbitMQ server details like RabbitMQ host, port, Username, password, and other details. Once the configuration is done, proceed by selecting ok.
Now go back to the flow canvas, select AMQP, and provide the queue name to which employee details need to be published.
Note: Unlike ActiveMQ it will not create a queue if it is not present. One should provide the name of the queue which is already present in the server queues.
I have already created a queue (Employee) in the server, so I am just providing the name here.
Once this done, deploy the application in the Anypoint studio. Once the application is deployed successfully, invoke the rest service. In my case, I am posting the employee details to the rest service.
After invoking the service, go to RabbitMQ console and select the queue to which you have published the message.
Here, you can find a list of the actions that can be performed on the queue. Expand Get messages.
After expanding the Get messages action, configure the number of messages that need to be retrieved and other details, and then select Get Message(s).
Now you can see the message that had been published and other JMS properties.
You have seen how to configure the AMQP connector, publish the messaging to the RabbitMQ, and use the RabbitMQ console to see the messages in the queue.
Opinions expressed by DZone contributors are their own.