Si bien es cierto que nos gustaría poder recomendar un Broker MQTT, la realidad es que cada proyecto tiene unos requisitos y necesidades particulares, y es por eso, que disponer de información comparativa de los distintos Brokers MQTT, nos puede ayudar a escoger el más adecuado para nuestros proyectos.
En el Guithub de MQTT.org podemos encontrar una lista de los principales brokers MQTT existentes: https://github.com/mqtt/mqtt.org/wiki/brokers
En Wikipedia (EN) podemos encontrar una detallada y extensa comparativa entre las capacidades y posibilidades de los principales Brokers MQTT, una fuente muy interesante para poder realizar una comparación exhaustiva: https://en.wikipedia.org/wiki/Comparison_of_MQTT_implementations
Para acabar, adjuntamos (traducida) una tabla comparativa realizada por Devendra Tewari y publicada en https://tewarid.github.io/2019/03/21/comparison-of-mqtt-brokers.html donde podemos tener una visión global y simple que nos ayudará en la selección de un Broker MQTT para tu proyecto.
Atributos | ActiveMQ | ActiveMQ Artemis | HiveMQ | JoramMQ | Mosquitto | RabbitMQ | VerneMQ |
---|---|---|---|---|---|---|---|
Open source | Apache 2.0 | Apache 2.0 | Commercial | LGPL, Commercial | EPL/EDL | MPL 1.1 | Apache 2.0 |
Soporte comercial | YES | YES | HiveMQ | ScalAgent | TIBCO | Pivotal | Octavo Labs AG |
Docker container | rmohr/activemq | vromero/activemq-artemis | hivemq/hivemq3 | NO | eclipse-mosquitto | rabbitmq:3 | erlio/docker-vernemq |
Soporte de Windows | YES | YES | YES | YES | YES | YES | NO |
Versión MQTT | 3.1 | 3.x | 3.x, 5.0 | 3.x | 3.1.1, 5.0 | 3.1.1 | 3.x, 5.0 |
Versión AMQP | 1.0 | 1.0 | NA | 0.9.1, 1.0 | NA | 0.8, 0.9.x, 1.0 | NA |
Interoperabilidad AMQP | NO | NO | NA | NO | NA | Parcial(Ver nota 1) | NA |
MQTT sobre WebSocket | YES | YES | YES | YES | YES | YES | YES |
Atributo “Retain” | YES | YES | YES | YES | YES | Partial (Ver nota 2) | YES |
Mensaje de “Last will and testament” | YES | YES | YES | YES | YES | YES | YES |
Sesión persistente | YES | YES | YES | YES | YES | YES | YES |
QoS Level 1 | YES | YES | YES | YES | YES | YES | YES |
QoS Level 2 | YES | YES | YES | YES | YES | NO | YES |
Suscripciones compartidas | NO | NO | YES | NO | NO | NO | YES |
Puente | NO | NO | YES | YES | YES | NO | YES |
Listener topic isolation | YES | YES | |||||
Clustering | YES | YES | YES | YES | NO | YES | YES |
API de administración REST | YES | YES | YES | YES | NO | YES | YES |
Interface de líneas de comandos para la gestión | YES | YES | YES | YES | NO | YES | YES |
Última versión | 5.15 (Verr nota 3) | 2.7.0 (Ver nota 3) | 4 | 5.16 | 1.6.2 | 3.7.13 | 1.7.1 |
Likes en GitHub | 1.4K | 0.5K | NA | NA | 2.4K | 5.4K | 1.7K |