# 产品概览

EMQX 是一款大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器。

作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,帮助您快速构建关键业务的物联网平台与应用。

# 产品优势

  • 开放源码:基于 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 v3.1、v3.1.1 和 v5.0 协议规范
    • QoS 0、QoS 1、QoS 2 消息支持
    • 持久会话和离线消息支持
    • 保留消息(Retained Message)支持
    • 遗嘱消息(Will Message)支持
    • 共享订阅支持
    • $SYS/ 系统主题支持
  • MQTT 支持 4 种传输协议
    • TCP
    • TLS
    • WebSocket
    • QUIC(实验性)
  • HTTP 消息发布接口
  • 网关
    • CoAP
    • LwM2M
    • MQTT-SN
    • Stomp
    • GB/T 32960(企业版)
    • JT/T 808(企业版)

更多 MQTT 扩展支持:

  • 延迟发布
  • 代理订阅
  • 主题重写

# 安全

  • 基于用户名/密码的身份认证,支持使用内置数据库、Redis、MySQL、PostgreSQL、MongoDB 作为数据源,也支持使用 HTTP Server 提供认证服务
  • 基于 JWT 的身份认证与权限控制,支持 JWKs
  • MQTT 5.0 增强认证
  • PSK 身份验证
  • 基于 Client ID、IP 地址,用户名的访问控制,支持使用内置数据库、Redis、MySQL、PostgreSQL、MongoDB 作为数据源,也支持使用 HTTP Server 提供授权服务
  • 客户端黑名单支持

# 可伸缩性

  • 多节点集群 (Cluster)
  • 支持手动、mcast、dns、etcd、k8s 集群发现方式集群
  • 多服务器节点桥接 (Bridge)

# 数据集成

  • SQL 语法数据集成,实时提取、过滤、丰富和转换 MQTT 消息或内部事件为用户所需格式,并将其发送到外部数据平台
  • 通过 MQTT 与其他 Broker 或物联网平台进行双向数据桥接(如 EMQX Cloud,AWS IoT Core,Azure IoT Hub)
  • 通过 Webhook 与其他应用集成

# 可靠性

  • 过载保护
  • 消息速率限制
  • 连接速率限制

# 可观测性

  • 客户端在线状态查询
  • 集群状态与指标查询
  • Prometheus/StatsD 集成
  • 自动网络分区恢复
  • 在线日志追踪(Log Trace)
  • Erlang 运行时追踪工具

# 可扩展性

  • 插件
  • 钩子
  • gRPC 钩子扩展
  • gRPC 协议扩展