vernemq 是一款开源的mqtt broker, 支持cluster 模式部署,而且部署比较简单
以下是一个使用docker-compose 搭建环境的demo
环境准备
- docker-compose 文件
version: "3"
services:
init:
image: erlio/docker-vernemq
environment:
- "DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on"
ports:
- "1883:1883"
- "8080:8080"
- "8888:8888"
networks:
app_net:
ipv4_address: 172.16.238.10
first:
image: erlio/docker-vernemq
environment:
- "DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on"
- "DOCKER_VERNEMQ_DISCOVERY_NODE=172.16.238.10"
networks:
app_net:
ipv4_address: 172.16.238.11
second:
image: erlio/docker-vernemq
environment:
- "DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on"
- "DOCKER_VERNEMQ_DISCOVERY_NODE=172.16.238.10"
networks:
app_net:
ipv4_address: 172.16.238.12
third:
image: erlio/docker-vernemq
environment:
- "DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on"
- "DOCKER_VERNEMQ_DISCOVERY_NODE=172.16.238.10"
networks:
app_net:
ipv4_address: 172.16.238.13
networks:
app_net:
driver: bridge
ipam:
driver: default
config:
-
subnet: 172.16.238.0/24
- 说明
为了简单,使用了固定的ip,因为集群的节点发现需要使用ip 地址
启动&&测试
- 启动
docker-compose up -d
- 测试
登陆节点使用vmq-admin 工具查看集群信息就可以了
比如:进入容器 docker exec -it vermq-clutser-project_first_1 sh
vmq-admin cluster show
+---------------------+-------+
| Node |Running|
+---------------------+-------+
|VerneMQ@172.16.238.10| true |
|VerneMQ@172.16.238.11| true |
|VerneMQ@172.16.238.12| true |
|VerneMQ@172.16.238.13| true |
说明
这个只是简单的环境搭建,vernemq 的功能还是很强大的,还需要 在仔细研究
参考资料
https://github.com/rongfengliang/vernemq-clutser-docker-compose
https://docs.vernemq.com/installing-vernemq/docker