|
|
|
@ -1,18 +1,26 @@
|
|
|
|
|
Testing three different MQTT brokers: mosquitto, hbmqtt (python) and volantmq (go).
|
|
|
|
|
The goal is to compare different brokers using the same client code.
|
|
|
|
|
In particular, I wanted to know if the main python and golang broker implementations support QOS level 2 subscriptions.
|
|
|
|
|
i.e. whether the broker will store undelivered messages while the subscriber is offline, and deliver them once it comes online.
|
|
|
|
|
|
|
|
|
|
The compose file sets up the three brokers, and two clients (a producer and a consumer).
|
|
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
|
|
To launch the three brokers, run:
|
|
|
|
|
Before you launch the clients, launch the brokers you want to try with compose.
|
|
|
|
|
This will launch the three brokers:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker-compose up mosquitto pybroker gobroker
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The brokers can be configured to use different brokers with the `MQTT_HOST` environment variable (see below).
|
|
|
|
|
|
|
|
|
|
## Mosquitto
|
|
|
|
|
## Clients
|
|
|
|
|
|
|
|
|
|
The clients can be configured to use different brokers with the `MQTT_HOST` environment variable (see below).
|
|
|
|
|
You can run as many clients as you wish.
|
|
|
|
|
|
|
|
|
|
### Mosquitto
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker-compose run -e MQTT_HOST=mosquitto consumer
|
|
|
|
@ -22,7 +30,7 @@ docker-compose run -e MQTT_HOST=mosquitto consumer
|
|
|
|
|
docker-compose run -e MQTT_HOST=mosquitto producer
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## HBMQTT (python)
|
|
|
|
|
### HBMQTT (python)
|
|
|
|
|
|
|
|
|
|
This broker is using BoltDB (an embedded key-value store) for persistence.
|
|
|
|
|
|
|
|
|
@ -34,7 +42,7 @@ docker-compose run -e MQTT_HOST=pybroker consumer
|
|
|
|
|
docker-compose run -e MQTT_HOST=pybroker producer
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## VolantMQ (Go)
|
|
|
|
|
### VolantMQ (Go)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker-compose run -e MQTT_HOST=gobroker consumer
|
|
|
|
|