EMQX v4.4.5 发布:新增排他订阅及 MQTT 5.0 发布属性支持

简介: EMQX此次发布实现了与流数据库HStreamDB的集成,提供一站式数据接入与实时处理分析,新增排他订阅功能等帮助用户应对更多场景使用需求。

近日,EMQX 开源版 v4.3.16、开源版 v4.4.5 与企业版 v4.3.11、企业版 v4.4.5 四个维护版本正式发布。

此次发布实现了与流数据库 HStreamDB 的集成,提供一站式数据接入与实时处理分析。新增了排他订阅功能和规则引擎消息重发布时动态 QoS 与保留消息设置支持,同时支持在消息发布的 API 中设置 MQTT 5.0 的发布属性(PUBLISH Properties),帮助用户应对更多场景使用需求。此外还修复了多项已知 BUG。

欢迎下载使用:https://www.emqx.com/zh/try?product=enterprise

规则引擎新功能

集成 HStreamDB,一站式数据接入、存储与分析

包含版本 企业版 v4.3.11 企业版 v4.4.5

HStreamDB 是一款为物联网数据存储和实时处理而生的流数据库。它使用标准 SQL (及其流式拓展)作为主要接口语言,以实时性作为主要特征,集实时数据采集和捕获系统、实时数据存储系统、流计算引擎、下游的数据和应用系统于一体,旨在简化数据流的运维管理以及实时应用的开发。

规则引擎现已支持将 EMQX 的数据持久化到 HStreamDB,从而实现对这些数据的实时处理分析与洞察。性能测试中,EMQX 在 32 核 64GB 配置下可以稳定支持 8 万连接、每秒 8 万 QoS 0、Payload 4KB 的消息持久化至 HStreamDB,集成使用方式请参照文档

EMQX-HStreamDB XMeter 性能测试报告.png

EMQX-HStreamDB XMeter 性能测试报告

消息重发布动作支持保留消息与动态 QoS

包含版本 开源版 v4.3.16 开源版 v4.4.5 企业版 v4.3.11 企业版 v4.4.5

我们在消息重发布功能中引入保留消息和动态 QoS 支持,以满足用户特定的场景下的需求。其中保留消息需求来源于 EMQX 问答社区,旨在将客户端最新状态通过保留消息存储到 EMQX 中以便后续处理。

EMQX Dashboard.png

新增排他订阅功能

包含版本 开源版 v4.3.16 开源版 v4.4.5 企业版 v4.3.11 企业版 v4.4.5

排他订阅只允许单个订阅者订阅某个主题,使用排他订阅时,可以轻松实现「某些数据同时只能被一个订阅者处理」这类业务。

排他订阅的使用与共享订阅十分相似,使用特定的主题前缀 $exclusive 表明这是一个排他订阅,某个客户端订阅成功后,新的客户端将无法再次订阅相同主题。

排他订阅默认关闭,需要在此配置项中开启:

mqtt.exclusive_subscription = true

排他订阅生效示例:

// 成功
clientA.subscribe('$exclusive/t/1')

// 失败,该主题已有订阅者
clientB.subscribe('$exclusive/t/1')

// 成功,不带前缀的普通主题仍然可以成功订阅
clientC.subscribe('t/1')

// 需要携带前缀以取消订阅
clientA.unsubscribe('$exclusive/t/1')
// 成功
clientB.subscribe('$exclusive/t/1')

消息发布 API 支持设置 MQTT 5.0 发布属性(PUBLISH Properties)

包含版本 开源版 v4.4.5 企业版 v4.4.5

MQTT 5.0 支持在消息发布时设置额外的属性如消息过期间隔主题别名用户属性等,新版本中用户可以在消息发布 API 中使用此特性,以满足更多业务需求。

以下是包含发布属性的消息发布示例:

curl -i --basic -u admin:public -X POST "http://localhost:8081/api/v4/mqtt/publish" -d \
'{
  "topic":"t/1",
  "payload":"Hello World",
  "qos":1,
  "retain":false,
  "clientid":"emqx_c",
  "properties": {
    "user_properties": { "id": 10010, "name": "emqx", "foo": "bar"},
    "content_type": "text/plain",
    "message_expiry_interval": 3600
  }
}'

更多功能优化

  • 支持通过 CLI 一键更新集群 License
  • Dashboard 和管理 API 的 HTTPS 监听器可以使用受密码保护的私钥文件,提供了 key_password 配置项
  • 支持在主题重写规则中使用占位符 %u%c
  • 优化规则引擎资源创建时的 UI,例如折叠部分不常用的选项等
  • 为 ExHook 底层的 gRPC 连接开放了 KeepAlive、TCP_NODELAY、SO_RCVBUF 和 SO_SNDBUF 共 4 个与 TCP 相关的配置项

BUG 修复

各版本 BUG 修复详情请查看:

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
1月前
|
消息中间件 Ubuntu Java
SpringBoot整合MQTT实战:基于EMQX实现双向设备通信
本教程指导在Ubuntu上部署EMQX 5.9.0并集成Spring Boot实现MQTT双向通信,涵盖服务器搭建、客户端配置及生产实践,助您快速构建企业级物联网消息系统。
470 1
EMQ
|
传感器 人工智能 安全
EMQX 与 MQTT: AI 大模型时代的分布式数据中枢
在以数据为核心的 AI 时代,基于 MQTT 协议的消息服务器 EMQX 能帮助企业更好的利用人工智能和机器学习模型,是智能化系统中核心的数据基础软件。
EMQ
513 124
|
网络协议 Java 物联网
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
2116 3
|
Linux 数据安全/隐私保护 Docker
MQTT(EMQX) - Linux CentOS Docker 安装
MQTT(EMQX) - Linux CentOS Docker 安装
742 0
|
Java
MQTT(EMQX) - Java 调用 MQTT Demo 代码
MQTT(EMQX) - Java 调用 MQTT Demo 代码
444 0
MQTT(EMQX) - Java 调用 MQTT Demo 代码
|
传感器 物联网 数据处理
MQTT 和 EMQX到底有啥区别?
MQTT 和 EMQX到底有啥区别?
3256 3
MQTT 和 EMQX到底有啥区别?
|
Ubuntu 网络安全 Windows
ubuntu16.04版本安装emqx的mqtt服务
ubuntu16.04版本安装emqx的mqtt服务
244 0
EMQ
|
监控 安全 数据可视化
EMQX Enterprise 5.1 正式发布:生产环境就绪的 MQTT over QUIC、基于 MQTT 的文件传输支持
EMQX Enterprise 5.1 单集群可达 1 亿客户端连接;创新性地引入 MQTT over QUIC 协议;同时提供了 MQTT 大文件传输能力以及可视化数据集成能力。
EMQ
458 0
EMQX Enterprise 5.1 正式发布:生产环境就绪的 MQTT over QUIC、基于 MQTT 的文件传输支持
|
消息中间件 存储 算法
RabbitMQ之Queue(队列)属性解读
RabbitMQ之Queue(队列)属性解读
|
消息中间件 存储 Java
RabbitMQ之Exchange(交换机)属性及备用交换机解读
RabbitMQ之Exchange(交换机)属性及备用交换机解读