如何快速部署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/docker2. 创建集群配置
创建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: bridge3. 启动集群
docker-compose -p my_emqx up -d4. 验证集群状态
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),仅供参考