EMQ X 消息服务器功能列表
- 完整的 MQTT V3.1/V3.1.1 及 V5.0 协议规范支持
- QoS0, QoS1, QoS2 消息支持
- 持久会话与离线消息支持
- Retained 消息支持
- Last Will 消息支持
- TCP/SSL 连接支持
- MQTT/WebSocket/SSL 支持
- HTTP 消息发布接口支持
- $SYS/# 系统主题支持
- 客户端在线状态查询与订阅支持
- 客户端 ID 或 IP 地址认证支持
- 用户名密码认证支持
- LDAP 认证
- Redis、MySQL、PostgreSQL、MongoDB、HTTP 认证集成
- 浏览器 Cookie 认证
- 基于客户端 ID、IP 地址、用户名的访问控制 (ACL)
- 多服务器节点集群 (Cluster)
- 支持 manual、mcast、dns、etcd、k8s 等多种集群发现方式
- 网络分区自动愈合
- 消息速率限制
- 连接速率限制
- 按分区配置节点
- 多服务器节点桥接 (Bridge)
- MQTT Broker 桥接支持
- Stomp 协议支持
- MQTT-SN 协议支持
- CoAP 协议支持
- Stomp/SockJS 支持
- 延时 Publish ($delay/topic)
- Flapping 检测
- 黑名单支持
- 共享订阅 ($share/:group/topic)
- TLS/PSK 支持
- 规则引擎
- 空动作 (调试)
- 消息重新发布
- 桥接数据到 MQTT Broker
- 检查 (调试)
- 发送数据到 Web 服务
以下是 EMQ X Enterprise 特有功能
- Scalable RPC 架构: 分离 Erlang 自身的集群通道与 EMQ X 节点间的数据通道
- 数据持久化
- Redis 存储订阅关系、设备在线状态、MQTT 消息、保留消息,发布 SUB/UNSUB 事件
- MySQL 存储订阅关系、设备在线状态、MQTT 消息、保留消息
- PostgreSQL 存储订阅关系、设备在线状态、MQTT 消息、保留消息
- MongoDB 存储订阅关系、设备在线状态、MQTT 消息、保留消息
- Cassandra 存储订阅关系、设备在线状态、MQTT 消息、保留消息
- DynamoDB 存储订阅关系、设备在线状态、MQTT 消息、保留消息
- InfluxDB 存储 MQTT 时序消息
- OpenTDSB 存储 MQTT 时序消息
- TimescaleDB 存储 MQTT 时序消息
- 消息桥接
- Kafka 桥接:EMQ X 内置 Bridge 直接转发 MQTT 消息、设备上下线事件到 Kafka
- RabbitMQ 桥接:EMQ X 内置 Bridge 直接转发 MQTT 消息、设备上下线事件到 RabbitMQ
- Pulsar 桥接:EMQ X 内置 Bridge 直接转发 MQTT 消息、设备上下线事件到 Pulsar
- RocketMQ 桥接:EMQ X 内置 Bridge 直接转发 MQTT 消息、设备上下线事件到 RocketMQ
- 规则引擎
- 消息编解码
- 桥接数据到 Kafka
- 桥接数据到 RabbitMQ
- 桥接数据到 RocketMQ
- 桥接数据到 Pulsar
- 保存数据到 PostgreSQL
- 保存数据到 MySQL
- 保存数据到 OpenTSDB
- 保存数据到 Redis
- 保存数据到 DynamoDB
- 保存数据到 MongoDB
- 保存数据到 InfluxDB
- 保存数据到 Timescale
- 保存数据到 Cassandra
- Schema Registry:将 EMQ X 的事件、消息 提供了数据编解码能力
功能说明
消息数据存储
EMQ X 企业版支持存储订阅关系、MQTT 消息、设备状态到 Redis、MySQL、PostgreSQL、MongoDB、Cassandra、TimescaleDB、InfluxDB、DynamoDB、OpenTDSB 数据库:
数据存储相关配置,详见”数据存储”章节。
消息桥接转发
EMQ X 企业版支持直接转发 MQTT 消息到 RabbitMQ、Kafka、Pulsar、RocketMQ、MQTT Broker,可作为百万级的物联网接入服务器(IoT Hub):
规则引擎
EMQ X 规则引擎可以灵活地处理消息和事件。
EMQ X 企业版规则引擎支持消息重新发布;桥接数据到 Kafka、Pulsar、RocketMQ、RabbitMQ、MQTT Broker;保存数据到 MySQL、PostgreSQL、Redis、MongoDB、DynamoDB、Cassandra、InfluxDB、OpenTSDB、TimescaleDB;发送数据到 WebServer:
规则引擎相关配置,详见”规则引擎”章节。
编解码
Schema Registry 目前可支持三种格式的编解码:Avro (opens new window),Protobuf (opens new window),以及自定义编码。其中 Avro 和 Protobuf 是依赖 Schema 的数据格式,编码后的数据为二进制,解码后为 Map 格式 。解码后的数据可直接被规则引擎和其他插件使用。用户自定义的 (3rd-party) 编解码服务通过 HTTP 或 TCP 回调的方式,进行更加贴近业务需求的编解码。
编解码相关配置,详见”编解码”章节。