news 2026/8/19 5:33:53

如何快速部署EMQX:BSL 1.1许可证架构下的完整实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何快速部署EMQX:BSL 1.1许可证架构下的完整实战指南

如何快速部署EMQX:BSL 1.1许可证架构下的完整实战指南

【免费下载链接】emqxThe most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles项目地址: https://gitcode.com/gh_mirrors/em/emqx

EMQX作为世界上最具可扩展性的开源MQTT broker,从v5.9.0版本开始采用BSL 1.1许可证,所有功能(包括之前企业版专属功能)现已向所有开发者开放。本文将带你通过Docker Compose快速搭建EMQX集群,掌握核心配置与最佳实践。

📌 为什么选择EMQX?

EMQX支持100M+ IoT设备连接,单集群可维持1M消息/秒吞吐量和亚毫秒级延迟,完全兼容MQTT 5.0/3.x标准。其内置的SQL规则引擎可实时处理IoT数据,分布式架构确保高可用性和水平扩展能力,已被70+财富500强企业采用。

EMQX S3应用架构示意图,展示了EMQX与S3存储集成的核心组件关系

🚀 一键部署步骤

1. 环境准备

确保已安装Docker和Docker Compose:

# 克隆仓库 git clone https://gitcode.com/gh_mirrors/em/emqx cd emqx/deploy/docker

2. 创建集群配置

创建docker-compose.yaml文件:

version: '3' services: emqx1: image: emqx/emqx:latest environment: - "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-bridge: aliases: - node1.emqx.io emqx2: image: emqx/emqx:latest environment: - "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-bridge: aliases: - node2.emqx.io networks: emqx-bridge: driver: bridge

3. 启动集群

docker-compose -p my_emqx up -d

4. 验证集群状态

docker exec -it my_emqx_emqx1_1 sh -c "emqx ctl cluster status"

成功输出应显示两个运行节点:

Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'], stopped_nodes => []}

⚙️ 核心配置指南

端口映射

默认需要开放的端口:

  • 1883: MQTT TCP端口
  • 18083: Dashboard Web端口
  • 8083: MQTT WebSocket端口

环境变量配置

通过环境变量自定义配置(完整列表见apps/emqx/etc/emqx.conf):

# 设置Dashboard密码 docker run -d --name emqx -e EMQX_DASHBOARD__DEFAULT_PASSWORD=mysecret -p 18083:18083 emqx/emqx:latest

数据持久化

为确保数据不丢失,需挂载持久卷:

volumes: vol-emqx-data: name: emqx-data vol-emqx-log: name: emqx-log services: emqx: image: emqx/emqx:latest environment: EMQX_NODE__NAME: emqx@127.0.0.1 volumes: - vol-emqx-data:/opt/emqx/data - vol-emqx-log:/opt/emqx/log

🔍 高级功能探索

CoAP协议支持

EMQX网关提供CoAP协议支持,实现IoT设备低功耗通信。其消息处理流程如下:

CoAP协议消息处理流程图,展示了从通道建立到消息分发的完整流程

性能优化

生产环境建议进行内核调优:

docker run -d --name emqx \ --sysctl fs.file-max=2097152 \ --sysctl net.core.somaxconn=32768 \ --sysctl net.ipv4.tcp_max_syn_backlog=16384 \ emqx/emqx:latest

📝 许可证说明

EMQX采用BSL 1.1许可证(从v5.9.0开始),允许免费用于开发、测试和生产环境,但禁止将其作为SaaS服务提供。完整许可条款参见项目根目录LICENSE文件。

🎯 总结

通过本文指南,你已掌握EMQX的Docker集群部署、核心配置和最佳实践。EMQX的BSL 1.1许可证架构为开发者提供了企业级功能的免费访问,结合其高性能和可扩展性,是构建IoT平台的理想选择。更多高级功能可参考官方文档等插件模块。

【免费下载链接】emqxThe most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles项目地址: https://gitcode.com/gh_mirrors/em/emqx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

如何快速掌握RoslynPad:跨平台C编辑利器的完整使用指南

如何快速掌握RoslynPad:跨平台C#编辑利器的完整使用指南 【免费下载链接】roslynpad 项目地址: https://gitcode.com/gh_mirrors/ros/roslynpad RoslynPad是一款基于Roslyn和AvalonEdit构建的跨平台C#编辑器,它为开发者提供了便捷的代码编写、调…

作者头像 李华
网站建设 2026/8/19 5:33:09

Speech Seaco Paraformer网络延迟优化:局域网访问提速技巧

Speech Seaco Paraformer网络延迟优化:局域网访问提速技巧 1. 引言:为什么局域网访问会慢? 如果你在本地部署了Speech Seaco Paraformer语音识别系统,可能会发现一个奇怪的现象:明明服务器就在同一个局域网里&#x…

作者头像 李华
网站建设 2026/7/14 16:22:14

AIGlasses_for_navigation部署教程:华为昇腾910B适配AscendCL加速指南

AIGlasses_for_navigation部署教程:华为昇腾910B适配AscendCL加速指南 1. 引言 想象一下,一副眼镜不仅能帮你导航,还能识别盲道、看懂红绿灯、帮你找东西,甚至能和你对话。这不是科幻电影,而是我们今天要部署的AIGla…

作者头像 李华
网站建设 2026/7/14 16:22:15

GLM-OCR部署案例:银行对公业务凭证OCR+大小写金额一致性校验

GLM-OCR部署案例:银行对公业务凭证OCR大小写金额一致性校验 1. 项目背景与需求 银行对公业务每天处理大量业务凭证,这些凭证包含关键的交易信息,特别是金额数据。传统的人工录入方式不仅效率低下,还容易出错。金额的大小写一致性…

作者头像 李华
网站建设 2026/7/14 16:22:14

实时手机检测-通用开源镜像:提供完整Dockerfile及构建脚本

实时手机检测-通用开源镜像:提供完整Dockerfile及构建脚本 1. 引言:为什么需要实时手机检测? 想象一下这样的场景:在一个大型会议或考试现场,需要快速识别出违规使用手机的行为;在工厂的生产线上&#xf…

作者头像 李华
网站建设 2026/7/14 16:22:16

文脉定序在时效性检索中的应用:新闻事件热度加权重排序方案

文脉定序在时效性检索中的应用:新闻事件热度加权重排序方案 1. 理解时效性检索的核心挑战 在信息爆炸的时代,新闻检索面临着一个关键难题:如何在海量信息中不仅找到相关内容,还要确保结果的时效性和重要性。传统搜索引擎往往只能…

作者头像 李华