In this blog post I'd like to introduce you to one of our latest developments: the RabbitMQ Simulator.
If you know me, you are probably aware that I have given quite a few RabbitMQ presentations over the year at several technical conferences. After explaining AMQP concepts many times with static images, I decided the time had come for a better tool—something more graphic and visual, something with more life and motion. So, I started working on this RabbitMQ Simulator project.
Why a RabbitMQ Simulator? The Goals
The goal of the simulator was to have a graphical tool where I could design messaging topologies by simply dragging and dropping exchanges, queues, consumers and producers into a blank canvas. Then, I wanted to draw connections between components, simulate routing keys, publish messages after pressing a button, and more. If a RabbitMQ user could see the diagrams and see the message flow across them, they would have a better understanding of how RabbitMQ works.
Implementing the RabbitMQ Simulator Prototype
Once I got the simulator prototype running, I started showing it to several of my colleagues. From those discussions, we concluded that the simulator could be a bit more than a simple teaching tool—we could actually use it to design messaging topologies and export them directly into RabbitMQ. At the same time, the simulator could import a messaging topology into the canvas and show at a glance all the connections between components. The latter concept was pretty powerful. For example, if you need to debug your routing configuration, you can import what you have inside RabbitMQ. You could then see it within the simulator and simulate message sending. This would help to visualize exactly how routing is happening complete with animations.
RabbitMQ Simulator Features
- The simulator currently implements the following features:
- Three exchange types: direct, fanout and topic
- Queue bindings and exchange-to-exchange bindings
- Publishers that can specify payload, routing key and publish interval, like "publish 1 message every 2 seconds"
- Message queuing
- Round-robin message delivery
- Default "anon" exchange representation
- Export topology for a "play only" mode (useful for tutorials)
RabbitMQ Simulator Video
But, enough with words. Here we have a video that demos several messaging scenarios by using the RabbitMQ Simulator.
RabbitMQ Simulator Open Source Bits
Now, you are probably asking yourself, “where can I get my hands on this simulator?” We published it as open source in Github here:
As a final note, keep in mind that it is a simulator. This is not an actual broker, and it doesn't use RabbitMQ. It just simulates the broker on the browser side. As in every simulation, some details from reality are left out in order to provide a model that is useful for its users.
To Learn more about RabbitMQ and RabbitMQ Simulator
- Watch the video
- Read the book RabbitMQ in Action
- Learn more from articles on the product, find case studies, and more
- Read more about the AMQP concepts
- Download the RabbitMQ Simulator from Github
|About the Author: Alvaro Videla is a software developer on the Cloud Foundry team within VMware in Switzerland. Before moving to Europe, he worked in Shanghai to build one of the largest German online dating sites. Alvaro Co-wrote the book "RabbitMQ in Action" for Manning Publishing. Some of the RabbitMQ open source projects can be found here. In addition to programming, Alvaro enjoys music, books, and traveling with his wife.|