• 已删除用户
Administrator
发布于 2022-08-04 / 4 阅读
0

MQTT 消息服务器EMQX

介绍的差不多了,该部署个服务器折腾一下了。在前面讲了 4 种主流的开源 MQTT 服务器,我选择了使用EMQX

EMQX 是一款全球下载量超千万的大规模分布式物联网 MQTT 服务器,单集群支持 1 亿物联网设备连接,消息分发时延低于 1 毫秒。为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,助力企业构建关键业务的 IoT 平台与应用。

EMQ(杭州映云科技有限公司)是一家开源物联网数据基础设施软件供应商,交付全球领先的开源云原生 MQTT 消息服务器和流处理数据库,为企业云边端的海量物联网数据提供高可靠、高性能的实时连接、移动、处理与分析,助力构建「面向未来」的物联网平台与应用。

产品优势

  • 开放源码:基于 Apache 2.0 许可证完全开源,自 2013 年起 200+ 开源版本迭代。

  • MQTT 5.0:100% 支持 MQTT 5.0 和 3.x 协议标准,更好的伸缩性、安全性和可靠性。

  • 海量连接:单节点支持 500 万 MQTT 设备连接,集群可扩展至 1 亿并发 MQTT 连接。

  • 高性能:单节点支持每秒实时接收、移动、处理与分发数百万条的 MQTT 消息。

  • 低时延:基于 Erlang/OTP 软实时的运行时系统设计,消息分发与投递时延低于 1 毫秒。

  • 高可用:采用 Masterless 的大规模分布式集群架构,实现系统高可用和水平扩展。

版本选择

虽然开源版本功能教少,但作为有追求的技术人员,当然选择开源版本。但是我们在阿里云中使用最为广泛的数据桥接(阿里云功能命名:云产品流转)在开源版本里是没有的,需要自己去实现。

EMQX 开源版

大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器,高效可靠连接海量物联网设备,高性能实时处理消息与事件流数据,助力构建关键业务的物联网平台与应用。

  • 基于 APL 2.0 开放源码协议

  • 完整 MQTT 3.1.0、3.1.1 和 5.0 规范,支持 MQTT-SN

  • Masterless 高可用集群架构

  • 高并发、低时延、高性能

  • 可扩展的网关和插件体系

EMQX 企业版

通过可靠、实时的物联网数据移动、处理和集成,连接您的海量物联网设备。加快您的物联网应用开发,免除基础设施管理维护负担。

  • 全托管的 MQTT 5.0 服务

  • 基于 SQL 的 IoT 数据集成

  • 多种数据库与云服务集成

  • 关键业务的高可用高可靠

  • 在任何地方运行,随用随付

EMQX Cloud

「随处运行,无限连接,任意集成」 云原生分布式物联网接入平台,一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,助力企业快速构建关键业务的 IoT 平台与应用。

  • 标准或专有多协议支持

  • 基于 SQL 的 IoT 数据集成

  • 数据持久化与数据桥接

  • 管理与监控中心

  • 7x24 小时技术支持服务

安装部署

安装、部署、配置、调优均参照官方最新文档。这里只摘录一个 Docker 部署脚本作为笔记:

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

管理控制台

简介

EMQX 提供了 Dashboard,以方便用户通过 Web 页面管理、监控 EMQX 并配置所需的功能。

主要功能:

  • 监控运行中的 EMQX 集群。

  • 查看、搜索和管理连接的客户端,甚至踢出客户端。

  • 查看、搜索订阅与主题。

  • 管理客户端的用户名/密码,或者配置一个外部资源来满足客户端的认证。例如数据库或认证服务器。

  • 创建或更新数据集成规则(规则引擎),在设备和外部数据平台间提取、过滤或转换并传输数据,如另一个 MQTT 服务器,数据库或 Web 服务。

  • 管理扩展,如网关,gRPC 以及插件。

  • 诊断工具,如内置的 Websocket MQTT 客户端,在线日志追踪等。

启动

EMQX Dashboard 是一个 Web 应用程序,默认监听 18083 端口。EMQX 成功启动之后可以通过浏览器打开 http://localhost:18083/ (opens new window)(将 localhost 替换为实际 IP 地址)以访问 Dashboard。初始账号:admin,初始密码:public。

在不启用 Dashboard 情况下仍然可以使用 EMQX,但这可能大大影响服务的可操作性:Dashboard 可以以表单方式配置很多功能,相比手动编辑配置文件更容易上手使用。

参考资料

EMQX 官网。