MQTT message broker for production

9,789 views
Skip to first unread message

Guy Dillen

unread,
Aug 29, 2014, 3:12:54 PM8/29/14
to mq...@googlegroups.com
Hi,

I'm considering Mosquitto or RabbitMQ as MQTT message broker (to install in the Cloud). I probably also want to bridge 2 message brokers. For production environments are both Mosquitto and RabbitMQ suited? What are the pros/cons of both brokers?

Thanks.

Michael Klishin

unread,
Aug 29, 2014, 3:32:11 PM8/29/14
to Guy Dillen, mq...@googlegroups.com
On 29 August 2014 at 23:12:55, Guy Dillen (guy.d...@gmail.com) wrote:
> > I probably also want to bridge 2 message brokers. For production
> environments are both Mosquitto and RabbitMQ suited? What are
> the pros/cons of both brokers?

Disclaimer: I'm a RabbitMQ team member at Pivotal.

Besides proving interoperability with clients that use other protocols, RabbitMQ
offers a management UI, clustering, federation (WAN-friendly async replication),
flow control, integration with LDAP, and TLS support.

RabbitMQ does not implement QoS 2 — exactly once delivery — which (if you ask me) is a feature
that won't work  well in a distributed system in practice.
--
@michaelklishin, github.com/michaelklishin

Dominik Obermaier

unread,
Aug 29, 2014, 3:58:29 PM8/29/14
to mq...@googlegroups.com
Hi Guy,

there are several MQTT brokers like Mosquitto, RabbitMQ and HiveMQ which are suited for production use, the choice usually depends on what you are trying to achieve and which kind of professional service you are looking for.

Mosquitto is open source and is written in C. It fully supports MQTT 3.1 and MQTT 3.1.1. Its binary is very small and mosquitto also works well on constrained devices. For cloud deployments with tens of thousands of concurrent connections, the single-threaded nature could become a challenge, so you should do some test deployments first. Roger Light, who is also on this mailing list, is the developer and I'm sure he can tell you a bit more about how people are using mosquitto in production. Mosquitto is a great product and very stable. As far as I know there is no company who offers professional support for mosquitto.

RabbitMQ is a nice piece of software which supports multiple protocols out-of-the-box. Its MQTT support is implemented as adapter [1] which translates to AMQP and does not implement all MQTT core features. It's highly scalable and reliable and there are many deployments using AMQP. It's written Erlang and should be pretty easy to install on most systems. I'd also be very interested in information about the stability of the MQTT adapter in production (maybe the RabbitMQ devs can help out here?).

HiveMQ [2] is a pure MQTT broker which was designed for professional use. It implements all MQTT 3.1 and MQTT 3.1.1 features and many additional features on top. It has a plugin system which allows to integrate seamlessly with other parts of the software landscape (like databases, microservices, cloud services,...). It also has native websockets support, implements MQTT bridges and supports TLS for secure communication. HiveMQ supports elastic clustering (with different discovery mechanisms) with master-master replication and is highly scalable due to the event-driven and reactive nature. Professional support is available.

A comparison of MQTT brokers can be found here [3] on the MQTT Github Wiki (you can scroll the table to the right to see more features)

Disclaimer: I'm one of the developers of HiveMQ, so take these words with a grain of salt.

[1] http://www.rabbitmq.com/mqtt.html
[2] http://www.hivemq.com
[3] https://github.com/mqtt/mqtt.github.io/wiki/Server%20support

Guy Dillen wrote:
--
To learn more about MQTT please visit http://mqtt.org
---
You received this message because you are subscribed to the Google Groups "MQTT" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mqtt+uns...@googlegroups.com.
To post to this group, send email to mq...@googlegroups.com.
Visit this group at http://groups.google.com/group/mqtt.
For more options, visit https://groups.google.com/d/optout.

Guy Dillen

unread,
Aug 29, 2014, 4:09:53 PM8/29/14
to mq...@googlegroups.com
@Michael, Dominik: thanks for your info.

@Roger Light: Roger, as Dominik suggested, can you please give some  insights/more info about how Mosquitto is used in production environments (performance, scalability, etc.)? Thanks.

Michael Klishin

unread,
Aug 29, 2014, 4:10:03 PM8/29/14
to Dominik Obermaier, mq...@googlegroups.com
On 29 August 2014 at 23:58:29, Dominik Obermaier (dominik....@gmail.com) wrote:
> > I'd also be very interested in information about the stability
> of the MQTT adapter in production (maybe the RabbitMQ devs can
> help out here?).

We consider it production-ready. Issues reported are also fairly quickly resolved (RabbitMQ
has point releases roughly once a month). 
--
@michaelklishin, github.com/michaelklishin

Roger Light

unread,
Aug 29, 2014, 6:10:54 PM8/29/14
to mq...@googlegroups.com
Hi Guy,

You'll have to forgive me for being brief, I'm going on holiday in
about 9 hours and still need to pack and sleep :)

I've had some reports on performance. This link
https://lists.launchpad.net/mosquitto-users/msg00335.html is one and
has links to other at the bottom.

The biggest performance bottleneck appears to be the use of poll(),
which should be fixed by version 1.5.

Cheers,

Roger

Andrea Selva

unread,
Aug 30, 2014, 9:03:21 AM8/30/14
to mq...@googlegroups.com
Hi Guy,
you can always give a try to Moquette, it's not proved on combat environments, but it could be easy to hack and fix.

 Andrea

Reply all
Reply to author
Forward
0 new messages