1、简介
EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。
Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。
MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。
EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:
- 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。
- 分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
- 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
- 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。
2、启动emqx
官网连接:https://www.emqx.io/docs/zh/v5.1/deploy/install-docker.html#%E9%80%9A%E8%BF%87-docker-%E8%BF%90%E8%A1%8C%E5%8D%95%E4%B8%AA-emqx-%E8%8A%82%E7%82%B9
docker持久化:https://askemq.com/t/topic/2353
https://hub.docker.com/r/emqx/emqx
# docker run -d --name emqx emqx/emqx:4.0.0
3、复制emqx数据
# mkdir -p mqtt/emqx && cd mqtt
# docker cp emqx:/opt/emqx/data emqx
# docker cp emqx:/opt/emqx/etc emqx
# docker cp emqx:/opt/emqx/lib emqx
# docker cp emqx:/opt/emqx/log emqx
4、授权emqx目录
# chown -R 1000:1000 emqx/
# chmod -R 755 emqx/
5、配置docker-compose.yml
# cat docker-compose.yml
version: '3'
services:
mqtt:
image: emqx/emqx:v4.0.0
privileged: true
restart: always
container_name: mqtt
hostname: mqtt
environment:
- TZ=Asia/Shanghai
- EMQX_NODE_NAME=wielun@172.200.200.2
- EMQX_HOST=172.200.200.2
- EMQX_NAME=wielun
ports:
- 1883:1883 # MQTT/TCP 协议端口
- 8081:8081 # HTTP
- 8083:8083 # MQTT/WS 协议端口
- 8883:8883 # MQTT/SSL 协议端口
- 8084:8084 # MQTT/WSS 协议端口
- 18083:18083 # MQTT/TCP 协议内部端口,仅用于本机客户端连接
volumes:
- /etc/localtime:/etc/localtime:ro
- /usr/share/zoneinfo/:/usr/share/zoneinfo/:ro
- ./emqx/data:/opt/emqx/data
- ./emqx/etc:/opt/emqx/etc
- ./emqx/lib:/opt/emqx/lib
- ./emqx/log:/opt/emqx/log
networks:
default:
ipv4_address: 172.200.200.2
networks:
default:
ipam:
config:
- subnet: 172.200.200.0/24
6、启动查看结果
# docker-compose up -d
# ls emqx/data/mnesia/wielun@172.200.200.2/ # 数据存储,有对应的文件生成就正确
7、浏览器访问
http://IP:18083
默认账号密码:admin/public