news 2026/4/15 9:31:16

EMQX 社区版部署实战:从单机到高可用集群

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EMQX 社区版部署实战:从单机到高可用集群

1. 5分钟搞定Docker单机部署

第一次接触EMQX的朋友,我强烈建议从Docker方式入手。就像搭积木一样简单,三行命令就能让MQTT服务跑起来。最近给客户做POC测试时,我习惯用这种方式快速验证功能。

先说说硬件要求。官方建议最小配置是2核CPU+4GB内存,但实测1核2GB的轻量云服务器也能流畅运行基础功能。不过如果客户端连接数超过5000,还是老老实实按推荐配置来。

拉取镜像的命令很简单:

docker pull emqx/emqx:5.3.2

启动容器时要注意端口映射。有次我忘了映射18083端口,结果死活打不开Dashboard,排查了半天才发现问题。建议直接复制这段完整命令:

docker run -d --name emqx \ -p 1883:1883 \ -p 8083:8083 \ -p 8883:8883 \ -p 8084:8084 \ -p 18083:18083 \ emqx/emqx:5.3.2

这几个端口的作用得记牢:

  • 1883:标准MQTT协议端口
  • 8083:WebSocket连接端口
  • 8883:SSL加密的MQTT端口
  • 8084:WebSocket+SSL端口
  • 18083:管理控制台端口

启动后别急着操作,先用这个命令看看日志是否正常:

docker logs -f emqx

当看到"EMQX 5.3.2 is running now!"的提示时,打开浏览器访问http://服务器IP:18083。默认账号是admin/public,记得第一时间改密码!上周还有客户因为用默认密码被黑了,所有设备消息都被监听。

2. 生产环境宿主机部署详解

Docker虽好,但真实生产环境我更推荐直接用RPM包部署。去年有个项目用Docker跑EMQX,突发流量时容器OOM崩溃,排查发现是Docker内存限制配置不当。宿主机部署性能更稳定,也方便做系统级调优。

以Rocky Linux 9为例,安装过程比想象中简单。EMQX提供了一键安装脚本,连依赖项都自动处理:

curl -s https://assets.emqx.com/scripts/install-emqx-rpm.sh | sudo bash sudo yum install emqx -y

启动服务前有个小技巧:先修改内核参数。MQTT服务需要处理大量网络连接,建议调整以下参数:

echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf echo "net.core.somaxconn = 8192" >> /etc/sysctl.conf sysctl -p

然后用systemd管理服务:

sudo systemctl start emqx sudo systemctl enable emqx

遇到过最坑的问题是防火墙。有次部署完死活连不上,后来发现是firewalld没放行端口。建议直接配置永久规则:

sudo firewall-cmd --permanent --add-port=1883/tcp sudo firewall-cmd --permanent --add-port=18083/tcp sudo firewall-cmd --reload

验证服务是否正常,除了看Dashboard,还可以用mosquitto客户端测试:

mosquitto_pub -h localhost -t test -m "hello" -p 1883

3. 集群部署的三大关键步骤

单节点扛不住高并发?集群部署才是王道。上个月刚给物流公司做了200+节点的EMQX集群,分享几个实战经验。

3.1 节点准备

每台主机先按前文方法完成单机部署。重点注意两点:

  1. 主机时间必须同步,否则集群会报错
  2. 主机名要能互相解析

建议每台机器都配置hosts文件:

192.168.149.210 emqx-node1 192.168.149.211 emqx-node2

3.2 关键配置

主配置文件/etc/emqx/emqx.conf需要修改三个地方:

node { name = "emqx@192.168.149.210" cookie = "emqxsecretcookie" } cluster { name = emqx discovery_strategy = manual }

踩过的坑提醒:

  • 所有节点的cluster.name必须相同
  • cookie相当于集群密码,必须一致
  • name格式必须是emqx@IP或emqx@主机名

3.3 节点加入

在第二个节点执行加入命令:

emqx ctl cluster join emqx@192.168.149.210

成功后会显示:

Join the cluster successfully. Cluster status: #{running_nodes => ['emqx@192.168.149.210','emqx@192.168.149.211']}

验证集群状态有个隐藏技巧:

emqx_ctl cluster status

4. 集群管理实战技巧

建集群容易管集群难。下面这些命令能帮你省下80%的运维时间。

4.1 节点退出

正常退出用leave命令:

emqx ctl cluster leave

节点宕机时用force-leave:

emqx ctl cluster force-leave emqx@192.168.149.211

4.2 负载均衡

推荐用Nginx做TCP负载均衡,配置示例:

stream { upstream emqx_cluster { server 192.168.149.210:1883; server 192.168.149.211:1883; } server { listen 1883; proxy_pass emqx_cluster; } }

4.3 监控告警

集成Prometheus监控的配置:

# emqx.conf prometheus { enable = true push_gateway_server = "http://prometheus:9091" }

关键指标要关注:

  • 连接数(emqx_connections_count)
  • 消息速率(emqx_messages_received)
  • CPU/内存使用率

最近遇到个典型case:某客户集群消息堆积,查监控发现是单个主题订阅者过多。后来通过设置主题分流解决了问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 9:29:13

G-Helper:华硕笔记本性能调校的轻量级神器,释放硬件潜能

G-Helper:华硕笔记本性能调校的轻量级神器,释放硬件潜能 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, T…

作者头像 李华
网站建设 2026/4/15 9:29:11

基于深度学习的车辆区域计数 区域入侵检测 区域违停占用识别 YOLOv11实时roi区域视频人车流量统计项目

YOLOv11 实时视频 ROI 区域人流量/车流量统计项目介绍 1. 项目背景 随着智慧城市和智能交通的快速发展,实时统计特定区域的人流量和车流量成为关键需求。传统方法依赖人工统计或感应器,效率低且成本高。基于计算机视觉的解决方案,尤其是目标检…

作者头像 李华
网站建设 2026/4/15 9:26:30

TMSpeech终极指南:如何在Windows上实现零延迟的本地实时语音转文字

TMSpeech终极指南:如何在Windows上实现零延迟的本地实时语音转文字 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录而手忙脚乱吗?是否因为听不清在线课程内容而错过关键知识点…

作者头像 李华
网站建设 2026/4/15 9:26:09

AI Agent开发新纪元!Harness Engineering

Harness Engineering:AI Agent 的"缰绳工程学" 决定 Agent 上限的,不是 prompt,不是模型,而是运行系统的架构设计。 一、什么是 Harness Engineering? Harness Engineering 是 2025 年底至 2026 年初在 AI 工…

作者头像 李华
网站建设 2026/4/15 9:25:47

Windows本地语音转文字革命:TMSpeech如何让电脑听懂你的一切

Windows本地语音转文字革命:TMSpeech如何让电脑听懂你的一切 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 你是否厌倦了在会议中手忙脚乱地记录?是否因为听不清外语视频而反复回放&#xf…

作者头像 李华