MQTT over QUIC 多流支持

简介: 过去的2月份,EMQX开源版发布了v5.0.16、v5.0.17以及v5.0.18三个版本,提供了MQTT over QUIC多流(multistream)支持。

图1.jpg

过去的 2 月份,EMQX 开源版发布了 v5.0.16、v5.0.17 以及 v5.0.18 三个版本,提供了 MQTT over QUIC 多流(multistream)支持。企业版 v4.3.19 以及 v4.4.15 开发完成,即将发布,数据集成将新增对 HStreamDB 最新版本的适配,并允许设置 RocketMQ 消息生产者投递策略,将相同属性的消息转发到同一 RocketMQ 队列(Queue)中。

正在开发中的功能还有基于 MQTT 的大文件传输,目前已经完成主体开发并在团队内部进行了 PoC Demo。同时,我们对开源版 5.0 文档]进行了大量重构和内容调整,以帮助用户更快上手使用 EMQX。

*关于 MQTT over QUIC 的技术解析可参考:MQTT over QUIC:物联网消息传输还有更多可能

MQTT over QUIC 多流支持

在 5.0.18 版本中,EMQX 利用 QUIC 的多路复用特性,扩展 MQTT over QUIC 实现了多流支持。

启用多流将为消息通信带来以下改善:

  1. 解耦连接控制和消息传输;
  2. 避免主题之间的队首阻塞,每个主题可以有独立的流以消除其他主题长阻塞带来的影响;
  3. 解耦控制平面流量和数据平面流量;
  4. 将上行数据(发布)和下行数据(消息接收)拆分为不同通道,更快地响应客户端操作;
  5. 为不同主题设置不同流,实现主题优先级控制;
  6. 提高客户端/服务器端处理的并行性;
  7. 更健壮的 MQTT 数据处理:应用程序导致的单流中止不会导致连接关闭;
  8. 更细粒度的收发端协同流量控制:可以对每一个流,同时对整个连接进行流控,实现更细粒度的流量控制;
  9. 减少应用层的延迟:客户端在发送订阅或发布数据包之前不需要等待 CONNACK。

MQTT 文件传输完成 PoC Demo

为满足物联网应用中各类如配置、传感器数据、媒体和 OTA 升级包等文件的传输,EMQX 设计了基于 MQTT 的文件传输功能。

相较于 HTTP/FTP 方案,基于 MQTT 的文件传输与消息传输使用了统一的技术栈,减少了额外的开发、运维和安全审计工作,并且能够实现整体流控,避免文件传输占用大量带宽从而影响业务消息传输。未来 EMQX 还将提供基于 MQTT over QUIC 的大文件传输能力,实现弱网环境下高效可靠文件传输。

本月 MQTT 文件传输已经完成主体开发,实现了大文件分块传输、断点续传、可靠传输等特性并进行了内部 PoC Demo,将在进一步开发和测试后与大家见面。

适配 HStreamDB 最新版

EMQX 数据集成支持最新 HStreamDB 0.13.0版本,相较于此前支持的 0.8 版本,HStreamDB 0.13.0 能够支持更高的数据写入速度并加入了更多功能。

RocketMQ 数据集成支持设置生产者投递策略

EMQX 支持将客户端消息和事件以生产者的身份投递到 RocketMQ 中,实现与 RocketMQ 的数据集成。

此前版本中 EMQX 采用了 RocketMQ 默认的轮询算法进行消息投递,消息会被投递到不同的队列中。本次发布中 EMQX 新增了生产者投递策略的设置,允许用户将相同客户端 ID、用户名或主题的消息投递到同一 RocketMQ 队列中,满足某些场景下,同一类型的消息投递和消费的顺序性保证。

功能增强

  • 增加新的通用 TLS 选项 hibernate_after,在闲置一段时间后休眠 TLS 进程以减少其内存占用。默认值为 5s。
  • 允许在 AuthZ 规则主题中任意位置使用占位符,例如 {allow, {username, "who"}, publish, ["t/foo${username}boo/${clientid}xxx"]}.
  • 不再提供 Alpine Docker 镜像,Alpine 镜像的优势是体积非常小,但现在 EMQX 的 Alpine Docker 镜像体积已经大于基于 Debian Slim 的常规镜像,失去了存在价值。
  • Prometheus 集成添加了 live_connections.countlive_connections.max 两个指标,用于统计活跃客户端的数量。
  • HTTP API 支持 Proxy Protocol 协议,能够获取发起 HTTP 请求的客户端真实 IP。

问题修复

我们修复了多个已知 BUG,包括排他主题死锁问题、Replicant 节点无法手动加入集群问题。

各版本详细更新日志请查看:

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/emqx-newsletter-202302

相关实践学习
快速体验阿里云云消息队列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
目录
相关文章
EMQ
|
网络协议 安全 物联网
QUIC 协议:特性、应用场景及其对物联网/车联网的影响
了解 QUIC 协议的特性优势与应用场景,以及新一代物联网传输协议 MQTT over QUIC 如何为各类消息传输场景带来提升。
EMQ
1709 1
QUIC 协议:特性、应用场景及其对物联网/车联网的影响
|
6月前
|
安全 Linux API
免费Token用出付费效果:OpenClaw全平台部署(阿里云/Win11/Mac/Linux)+6大省钱技能合集(Token省95%)+FAQ
“Token消耗太快”“免费额度几天就用完”“明明没做多少事,账单却超预期”——这是很多OpenClaw(昵称“小龙虾”)用户的共同困扰。作为开源AI代理框架,OpenClaw的核心功能依赖大模型API驱动,而Token消耗直接与使用成本挂钩:暴力读取全文件、网页搜索返回冗余HTML、对话记忆无限制膨胀等行为,都会导致Token快速耗尽,让免费额度“捉襟见肘”。
3828 3
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
1039 37
|
存储 缓存 物联网
MNN推理框架将大模型放进移动端设备,并达到SOTA推理性能!
随着移动端(手机/平板等)算力、内存、磁盘空间的不断增长,在移动端部署大模型逐渐成为可能。在端侧运行大模型,可以有一系列好处:去除网络延迟,加快响应速度;降低算力成本,便于大规模应用;不需数据上传,保护用户稳私。
3287 13
MNN推理框架将大模型放进移动端设备,并达到SOTA推理性能!
|
缓存 安全 数据安全/隐私保护
【Docker专栏】深入理解Docker镜像的构建与推送
【5月更文挑战第7天】本文介绍了Docker镜像的核心作用及基础概念,包括镜像作为容器模板的特性。文章详细阐述了Dockerfile的编写,例如设置基础镜像、工作目录、安装依赖及定义启动命令。通过`docker build`命令构建镜像,并提示了优化构建过程的技巧。此外,还讲解了如何将镜像推送到远程仓库,包括选择仓库、认证、标签和推送镜像的步骤,以及镜像安全性的考虑,如扫描漏洞和遵循最小权限原则。本文旨在帮助读者掌握Docker镜像的构建与推送,以高效管理容器化应用。
893 61
【Docker专栏】深入理解Docker镜像的构建与推送
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
664 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
数据采集 SQL 数据挖掘
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(1)
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(1)
EMQ
|
网络协议 物联网 Java
从零开始上手 MQTT over QUIC:快速体验下一代物联网标准协议
为了更多用户能体验到MQTT over QUIC为物联网消息传输带来的提升,我们将通过本文指导您如何从零开始上手使用MQTT over QUIC。
EMQ
1263 2
从零开始上手 MQTT over QUIC:快速体验下一代物联网标准协议
|
时序数据库
时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
【6月更文挑战第24天】时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
2552 0