emqx介绍
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 或私有协议支持。
mqtt协议遵循pub/sub机制,可根据topic实现广播、点对点等功能,可用于物联网网关
、网站广播
等相关业务场景
安装前须知
- 需要安装docker环境
- 需要安装docker-compose
docker-compose文件
测试的话,单节点即可,18083是emqx控制台端口,1883是MQTT/TCP 协议端口,具体可参考官方文档
volumes:
emqx_node1-emqx-data:
emqx_node1-emqx-etc:
emqx_node1-emqx-log:
version: "3"
services:
emqx1:
image: emqx/emqx:latest
restart: always
environment:
EMQX_NAME: emqx_node1
EMQX_HOST: emqx_node1.gitliuyi.top
ports:
- "18083:18083"
- "1883:1883"
volumes:
# 持久化配置,主要针对data以及etc和log目录,这里使用全局的volume方式
# 也就是docker会自动根据顶级volumes创建相关卷,至于具体卷在宿主机的路径可使用相关命令查询
# docker volume ls
# docker volume inspect ${卷名称}
- emqx_node1-emqx-data:/opt/emqx/data
- emqx_node1-emqx-etc:/opt/emqx/etc
- emqx_node1-emqx-log:/opt/emqx/log
执行 docker-compose up -d
即可
安装完成以后可打开 http://IP:18083 进行控制台访问,默认用户名admin,默认密码public,可自行进行更改。