当前位置: 首页 > web >正文

Docker 实战 -- EMQX

文章目录

    • 前言
    • EMQX
    • 单结点部署
      • docker-compose.yml
      • 运行
    • 集群部署
      • docker-compose.yml
      • 运行与校验

前言

当你迷茫的时候,请点击 Docker 实战目录 快速查看前面的技术文章,相信你总能找到前行的方向

EMQX

EMQX 是一款基于 Erlang/OTP 平台开发的开源 MQTT 消息服务器,专为物联网(IoT)场景设计,支持大规模连接和低延迟消息传输 。它不仅支持标准的 MQTT 协议,还支持 MQTT-SN、CoAP、LwM2M、WebSocket 等多种协议,适用于多种物联网应用场景 。

EMQX 提供了丰富的功能,包括消息发布、订阅、认证、规则引擎、集群部署、数据存储、监控和告警等功能,官网教程参考 https://www.emqx.com/zh/mqtt-guide

单结点部署

EMQX 单节点用docker-compose部署, 其配置文件为:

docker-compose.yml

version: "3"
services:emqx:image: "emqx:latest"ports:- "18083:18083"- "8883:8883"- "8084:8084"- "8083:8083"- "1883:1883"container_name: emqxvolumes:- ./certs:/opt/emqx/etc/certs- ./data:/opt/emqx/dataenvironment:- /etc/localtime:/etc/localtime- EMQX_NODE_NAME=emqx@node.emqx.io- EMQX_DASHBOARD__DEFAULT_PASSWORD=123456# - EMQX_LISTENER__SSL__EXTERNAL__PORT=8883# - EMQX_LISTENER__SSL__EXTERNAL__KEYFILE=/opt/emqx/etc/certs/emqx.key# - EMQX_LISTENER__SSL__EXTERNAL__CERTFILE=/opt/emqx/etc/certs/emqx.pem# - EMQX_LISTENER__SSL__EXTERNAL__CACERTFILE=/opt/emqx/etc/certs/ca.pemnetworks:- emqx-bridgenetworks:emqx-bridge:driver: bridge

运行

docker-compose 运行EMQX

# 停止并删除旧容器
docker compose down
# 重新启动集群
docker compose up -d
# 查看节点1的日志,确认集群状态
docker compose logs -f emqx

访问页面 http://localhost:18083 管理页面 默认账密为admin/public,但上面配置中密码我改成了123456,登录进去即可查看EMQX情况:
在这里插入图片描述

集群部署

docker-compose.yml

version: '3'services:# EMQX 节点 1emqx1:image: emqx:latestcontainer_name: emqx1hostname: node1.emqx.io  # 显式设置主机名,确保解析正确volumes:#- ./certs1:/opt/emqx/etc/certs- ./data1:/opt/emqx/dataenvironment:- EMQX_NODE_NAME=emqx@node1.emqx.io- EMQX_CLUSTER__DISCOVERY_STRATEGY=static- EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io,emqx@node2.emqx.io  # 修正格式networks:emqx-net:aliases:- node1.emqx.io  # 添加网络别名,确保解析ports:- "1883:1883"- "8083:8083"- "8084:8084"- "8883:8883"- "18083:18083"healthcheck:test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]interval: 10stimeout: 5sretries: 10restart: unless-stopped# EMQX 节点 2emqx2:image: emqx:latestcontainer_name: emqx2hostname: node2.emqx.io  # 显式设置主机名volumes:#- ./certs2:/opt/emqx/etc/certs- ./data2:/opt/emqx/dataenvironment:- EMQX_NODE_NAME=emqx@node2.emqx.io- EMQX_CLUSTER__DISCOVERY_STRATEGY=static- EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io,emqx@node2.emqx.io  # 相同的种子列表networks:emqx-net:aliases:- node2.emqx.io  # 添加网络别名ports:- "1884:1883"- "8085:8083"- "8086:8084"- "8884:8883"- "18084:18083"healthcheck:test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]interval: 10stimeout: 5sretries: 10restart: unless-stoppednetworks:emqx-net:driver: bridge

运行与校验

docker-compose 运行EMQX

# 停止并删除旧容器
docker compose down
# 重新启动集群
docker compose up -d
# 查看节点1的日志,确认集群状态
docker compose logs -f emqx1

校验集群状态

# 方法1:在任意节点上执行
docker exec -it emqx1 /opt/emqx/bin/emqx ctl cluster status
# Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],
#                  stopped_nodes => []}# 方法2:通过API检查
curl http://localhost:18083/api/v5/nodes

在页面登录 节点1 http://localhost:18083,或者 节点2 http://localhost:18084 ,默认账号密码为 admin/public,查看集群情况:
在这里插入图片描述
在页面上还有客户端可供测试:
在这里插入图片描述

http://www.xdnf.cn/news/19189.html

相关文章:

  • 第22章笔记|把“可传参脚本”打磨成“高级好用的工具”
  • 链表(LinkedList)
  • docker compose设置命令别名的方法
  • Swift 解法详解:LeetCode 366《寻找二叉树的叶子节点》
  • 贪心算法面试常见问题分类解析
  • 微服务入门指南(一):从单体架构到服务注册发现
  • PPT处理控件Aspose.Slides教程:使用 C# 编程将 PPTX 转换为 XML
  • Pytorch超分辨率模型实现与详细解释
  • CRYPT32!CryptMsgUpdate函数分析和asn.1 editor nt5inf.cat 的总览信息
  • 机器学习回顾——逻辑回归
  • Consul 操作命令汇总 - Prometheus服务注册
  • 计算机视觉与深度学习 | 视觉里程计技术全景解析:从原理到前沿应用
  • 2024年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 项目一系列-第8章 性能优化Redis基础
  • 星链调查(SOS)线上问卷调查:全流程标准化实践与核心优势深挖
  • 第三届机械工程与先进制造智能化技术研讨会(MEAMIT2025)
  • 【NJU-OS-JYY笔记】操作系统:设计与实现
  • 锂电池充电芯片 XSP30支持PD/QC等多种快充协议支持最大充电电流2A
  • Origin绘制四元相图
  • [Linux]学习笔记系列 -- mm/shrinker.c 内核缓存收缩器(Kernel Cache Shrinker) 响应内存压力的回调机制
  • 深入解析PCIe 6.0拓扑架构:从根复合体到端点的完整连接体系
  • 宜春城区光纤铺设及接口实地调研
  • C5仅支持20MHZ带宽,如果路由器5Gwifi处于40MHZ带宽信道时,会出现配网失败
  • Pytest 插件方法:pytest_runtest_makereport
  • Stream API 讲解
  • Day17_【机器学习—在线数据集 鸢尾花案例】
  • 宜春城区SDH网图分析
  • 漫谈《数字图像处理》之浅析图割分割
  • 从9.4%到13.5%:ICDM2025录取率触底反弹,竞争压力稍缓
  • 新工具-mybatis-flex学习及应用