前言
QUIC(RFC9000) 是下一代互联网协议 HTTP/3 的底层传输协议,与 TCP/TLS 协议相比,它在减少连接开销与消息延迟的同时,为现代移动互联网提供了有效灵活的传输层。
EMQX 5.0 是首个将 QUIC 引入 MQTT 的开创性产品。在长期的客户服务和技术探索中,我们注意到 QUIC 的特性能够和一些物联网场景完美契合,于是尝试将 MQTT 的传输层替换成 QUIC,由此诞生了 MQTT over QUIC。
正如 MQTT over QUIC:物联网消息传输还有更多可能 一文所述,在网络不稳定、连接多变的物联网场景下,QUIC 低连接开销和多路径支持的特性就显示出了其领先的优势。测试数据也表明,基于 QUIC 0 RTT/1 RTT 重连/新建能力,MQTT over QUIC 能够在弱网与不固定的网络通路中有效提升用户体验。
EMQ 正以世界知名开源和开放标准机构 OASIS 的 Foundational Sponsor 身份积极推动 MQTT over QUIC 的标准化落地。事实上,目前已经有一部分客户开始尝试将这一新特性投入使用并获得了良好的反馈。为了更多用户能体验到 MQTT over QUIC 为物联网消息传输带来的提升,我们将通过本文指导您如何从零开始上手使用 MQTT over QUIC。
启用 MQTT over QUIC
MQTT over QUIC 特性随 EMQX 5.0 发布。由于是实验性功能,在 CentOS 6、macOS 以及 Windows 系统下并未包含 QUIC 编译,请自行从源码编译并在编译前指定环境变量 BUILD_WITH_QUIC=1 ,其他操作系统和平台则可以正常使用。
MQTT over QUIC 默认不可用,请通过以下配置手动开启。
-
打开配置文件
etc/emqx.conf,取消listeners.quic.default配置组的注释(如果没有此配置组请手动添加):# etc/emqx.conf listeners.quic.default { enabled = true bind = "0.0.0.0:14567" max_connections = 1024000 keyfile = "etc/certs/key.pem" certfile = "etc/certs/cert.pem" } -
该配置表示启用 QUIC 监听器并绑定 UDP
14567端口,保存成功后请重启 EMQX 以应用配置。 -
执行
emqx_ctl listeners命令,可在结果中看到 MQTT over QUIC 监听器已启用:> emqx_ctl listeners quic:default

本文介绍了MQTToverQUIC在物联网中的应用,它是EMQX5.0引入的创新特性,旨在减少连接开销和延迟。通过QUIC协议,MQTToverQUIC在不稳定网络环境中表现出优势,EMQ正在推动其标准化。文章展示了如何在EMQX中启用MQTToverQUIC,以及使用NanoSDK和emqtt客户端库进行测试。同时,NanoMQ作为边缘计算产品,支持MQTToverQUIC桥接,允许设备通过QUIC连接到云端。最后,文章提到了性能测试工具emqtt-bench,用于验证MQTToverQUIC的性能提升。
最低0.47元/天 解锁文章
1227

被折叠的 条评论
为什么被折叠?



