EMQX是什么?
EMQX 是一款大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器。支持亿级的MQTT服务订阅。是目前相对性能较好的MQTT Broker,提供三种服务:1.云服务版本;2.商业版;3.开源版。
EMQX特性
- 开放源码:基于 Apache 2.0 许可证完全开源,自 2013 年起 200+ 开源版本迭代。
- MQTT 5.0:100% 支持 MQTT 5.0 和 3.x 协议标准,更好的伸缩性、安全性和可靠性。
- 海量连接:单节点支持 500 万 MQTT 设备连接,集群可扩展至1亿并发 MQTT 连接。
- 高性能:单节点支持每秒实时接收、移动、处理与分发数百万条的 MQTT 消息。
- 低时延:基于 OTP 软实时的运行时系统设计,消息分发与投递时延低于 1 毫秒。
- 高可用:采用 Masterless 的大规模分布式集群架构,实现系统高可用和水平扩展。
集群设计
EMQX 分布式的基本功能是将消息转发和投递给各节点上的订阅者,同一个主题的订阅者可能会绑定到不同节点,实现以上功能则在集群中维护了几个与之相关的数据结构:订阅表,路由表,主题树。
- 订阅表: 主题 - 订阅者
MQTT 客户端订阅主题时,EMQX 会维护主题(Topic) -> 订阅者(Subscriber) 映射的订阅表。订阅表只存在于订阅者所在的 EMQX 节点上,例如:
node1:
topic1 -