MCollective: Middleware Options


MCollective needs a publish/subscribe middleware system of some kind for all communications. When deploying MCollective, you need to:

  • Pick a middleware type
  • Get a connector plugin that supports it (note that ActiveMQ and RabbitMQ plugins are already included with MCollective’s core install)
  • Deploy and configure the middleware server(s)
  • Configure the connector plugin on all MCollective servers and clients

Note: Configuring the middleware and connector is only one step of a many-step deployment process. See the deployment index for a map of our deployment documentation, the overview of components and configuration for a summary of the components and roles in an MCollective deployment, and the standard deployment getting started guide for a walkthrough of the deployment process.

MCollective supports the following middleware systems:


Apache ActiveMQ is an open-source message broker that runs on the JVM; typically it’s installed with a wrapper script and init script that allow it to be managed as a normal OS service. MCollective talks to ActiveMQ using the Stomp protocol.

This is the main middleware recommended for use with MCollective: it performs extremely well, it’s the most well-tested option, its security features are powerful and flexible enough to suit nearly all needs, and it can scale by clustering once a deployment gets too big (we recommend ~800 nodes per ActiveMQ server as a maximum). Its main drawback is that it can be frustrating to configure; to help mitigate that, we provide a detailed ActiveMQ config reference in our own docs (see below).

The ActiveMQ connector ships with MCollective’s core and is available by default.


RabbitMQ is an open-source message broker written in Erlang; MCollective talks to RabbitMQ using the Stomp protocol. Although it works well with MCollective, it isn’t as thoroughly tested with it as ActiveMQ is, so if your site has no preference, you should default to ActiveMQ.

The RabbitMQ connector ships with MCollective’s core and is available by default.

Generic Stomp Connector (Deprecated)

MCollective 2.2 and earlier include a generic Stomp connector, which was the predecessor of the ActiveMQ and RabbitMQ connectors. Its performance and capabilities are fairly outdated at this point, and it was deprecated during the 2.2 series and removed in the 2.3 series. Use the ActiveMQ or RabbitMQ connector instead.

For older versions where the Stomp connector is still necessary, see the archived Stomp Connector Plugin Reference for config details.

Custom Connector Plugins

Creating custom connector plugins is not currently documented, but it’s very possible. We suggest reading the code of both the ActiveMQ connector and the Redis connector, to get decent parallax on how to accomplish similar tasks with very different systems.

↑ Back to top