bilibili-视频演示
Github地址
https://github.com/emqx/emqx
官网文档
https://www.emqx.io/docs/zh/v5.0/deploy/install-docker.html
dockerHub地址
https://hub.docker.com/r/emqx/emqx
EMQX 是最具扩展性的开源 MQTT 代理,具有高性能,可在 1 个集群中连接超过 1 亿个物联网设备,同时保持每秒 1M 消息的吞吐量和亚毫秒级延迟。
EMQX 支持 MQTT、HTTP、QUIC、WebSocket 等多种开放标准协议。它 100% 符合 MQTT 5.0 和 3.x 标准,并通过 TLS/SSL 和各种身份验证机制确保与 MQTT 的双向通信。
EMQX内置强大的基于 SQL 的规则引擎,可以实时提取、过滤、丰富和转换物联网数据。此外,它通过无主分布式架构确保高可用性和水平扩展性,并提供操作友好的用户体验和出色的可观察性。
新建一个文件夹用于放置emqx相关数据
mkdir emqx
进入emqx文件夹
新建docker-compose.yml文件
nano docker-compose.yml
docker-compose.yml文件
version: '3.5'
services:
emqx:
image: emqx/emqx:5.0.21
container_name: emqx
ports:
18083:18083
1883:1883
8083:8083
8081:8081
volumes:
./data:/opt/emqx/data
./log:/opt/emqx/log
always :
官方的文档描述
如果要持久化 EMQX docker 容器,需要保留以下目录:
-
/opt/emqx/data
-
/opt/emqx/etc
-
/opt/emqx/log
启动docker
docker-compose up
提示没有权限
给data文件夹和其子文件夹设置777最高权限
sudo chmod 777 -R data/
重新启动
启动成功
开放端口
也就是把你docker映射到主机端口都开放
但如果是正式环境,使用nginx代理后,就不要随意开放端口
sudo ufw allow 18083
sudo ufw allow 1883
sudo ufw allow 8083
sudo ufw allow 8081
使其在终端后台启动
常驻进程,保持服务
docker-compose up -d
访问ip:端口
18083为emqx的管理后台端口
192.168.1.33:18083
默认账户:admin
默认密码:public
第一次登录后会提示修改密码
修改密码后进去主页面
按照图示,可以修改界面语言为中文
点击Apply(应用)
点击左下角底部图标,可展开或者收缩菜单栏
本文使用MQTTX
官网地址
https://mqttx.app/
下载win文件安装即可
在功能配置-监听器中有默认设置
1883为无需证书的MQTT端口
打开MQTTX客户端
创建连接
填写name
ip改为部署emqx的ip地址,如本文的192.168.1.33
点击右上角connect
提示连接成功
同时在管理后台-连接管理
可以看到连接内容
在MQTTX客户端添加当前连接的订阅主题
点击添加订阅,填写名称,点击确认
可以看到创建了一个订阅
回到管理后台-订阅管理
可以看到多了一个test的订阅主题
至此,EMQX的MQTT部署和测试完成
写完本篇才发现之前已经写过一篇,基本内容没区别
《Docker Compose部署开源免费EMQX MQTT服务 用于Home Assistant MQTT通信》
不过这篇文章是对应录制视频演示的稿件,主要还是以视频为主,流程更清晰一些
END.