- EMQx
- RabbitMQ
- VerneMQ
- HiveMQ
- GoLang Publisher
- Python Subscriber
-
Clean configuration:
sudo mn -c -
Start the containernet simulation:
sudo python3 mesh_routers.py--type <container_type>-t: MQTT broker cluster type--delay-routers <number>,-d: delay on the router-router link--delay-switch <number>,-c: delay on the router-switch(broker) link--disable-client,-s: no clients in the simulation--ram-limit <ram_size>: ram memory of the brokers (500m,1g,2g,...)--cpu: enable a 16 core machine- Example:
sudo python3 mesh_routers.py --type emqx -d 5 -c 0 --ram-limit 2g
-
Start clients/log scripts:
./start_clients.sh--clients <number>: number of pub/sub clients--delay <number>: delay between publishes--messages <number>: number of published messages--qos <0,1,2>: MQTT Quality of Service for pubs and subs--name <path_file>: path of the storage file- Example:
./start_clients.sh --clients 5 --delay 2 --messages 50 --qos 2 --name <path>
GoLang script inspired from krylovsk/mqtt-benchmark and available here. The container image is on DockerHub.
The scripts spawn n clients that publish m message every d seconds and store the flight time in a filename file.
-
Syntax:
./mqtt-benchmark --broker tcp://<broker_addr>:<port> --topic <name> --clients <num_clients> --count <msg_clients> --qos <0,1,2> --delay <seconds> --folder <path/to/folder> --file-name <output_filename> -
Example:
docker exec -t mn.pub1 mqtt-benchmark --broker tcp://10.0.1.100:1883 --topic test --clients 10 --count 10 --qos 2 --delay 1 --folder experiments/today --file-name sim -
Modify and push:
- go to
goprojects/src/github.com/mqtt-benchmark/ - install
go install - commit and push to
github - go to
goprojects/src/github.com/mqtt-benchmark/docker - run
./build_this latest(also with a different tag)
- go to
The python subscriber connects, receives m messages and then disconnects.
Available in this repo.
The container image is on DockerHub.
-
Syntax: as the publisher
-
Example:
python3 clients/alpine_container/sub_thread.py -h 10.0.0.100 -t topic -q 2 -m 10 -c 10 --folder experiments/today --file-name sim -
Modify and push:
- go to
mqttbench_containernet/clients/alpine_container - run
./build_this
- go to