Zenoh 插件突破 DDS 广域网瓶颈:无需改代码,打通 ROS2 与工业 IoT 的远程通信

GitHub June 2026
⭐ 213
来源:GitHub归档:June 2026
Eclipse Zenoh 发布了一款革命性插件,可在不修改现有应用代码的前提下,将 DDS 数据透明地路由至广域网。这一突破彻底解决了 DDS 长期以来的广域网扩展难题,尤其对基于 ROS2 的机器人系统和工业 IoT 部署意义重大。

eclipse-zenoh/zenoh-plugin-dds 仓库提供了一个轻量级桥接方案,允许 DDS(数据分发服务)应用利用 Zenoh 协议实现地理路由和发现扩展。无需任何代码更改,DDS 发布者和订阅者即可跨子网、NAT 和防火墙通信——这一能力以往需要复杂的 VPN 或自定义代理才能实现。该插件对 ROS2 机器人系统尤为关键,配套的 zenoh-plugin-ros2dds 仓库提供了与 ROS2 中间件的更紧密集成。这个来自 Eclipse 基金会的开源项目已获得 213 个 GitHub Star 且每日稳定增长,直击 DDS 的核心痛点:其依赖的多播发现和实时传输(RTPS)在广域网环境中会失效。

技术深度解析

zenoh-plugin-dds 作为一个透明代理运行,在传输层拦截 DDS 流量。其底层使用 Zenoh 协议——一种针对高延迟、丢包网络优化的发布/订阅/查询协议——来封装 DDS RTPS(实时发布-订阅)消息。该插件以 Zenoh 实体的形式加入 DDS 域,通过标准 DDS 发现机制(SPDP/SEDP)发现本地 DDS 参与者,然后通过 Zenoh 会话镜像这些发布和订阅。

架构:
- DDS 侧: 插件在本地域中充当 DDS 参与者。它订阅本地发布者广告的所有主题,并发布远程订阅者请求的数据。这通过 DDS 内置的发现机制实现——插件监听发现流量,并构建主题到 Zenoh 键的映射。
- Zenoh 侧: 每个 DDS 主题被映射到一个 Zenoh 键表达式(例如 `/dds/robot1/sensor/imu`)。插件使用 Zenoh 的发布/订阅在 DDS 域之间转发数据。对于发现,它利用 Zenoh 的可查询机制在广域网链路上传播 DDS 参与者信息。
- 路由: 插件同时支持单播和多播 Zenoh 路由。对于广域网场景,它通常在每个站点部署一个 Zenoh 路由器(例如 `zenohd`)来管理连接、NAT 穿透和加密。

关键工程细节:
- 零拷贝数据路径: 插件避免序列化/反序列化开销,直接将 DDS 序列化数据传入 Zenoh 负载。这保留了 DDS 类型安全性并最小化延迟。
- QoS 映射: DDS QoS 策略(可靠性、持久性、历史记录)被映射到 Zenoh 自身的 QoS 原语。例如,DDS RELIABLE 对应 Zenoh 的可靠传输模式,而 DDS BEST_EFFORT 映射到 Zenoh 的尽力而为模式。
- 发现扩展: 传统 DDS 发现使用多播,在节点数超过几百个时扩展性差。该插件用基于 Zenoh 分布式哈希表(DHT)的发现取而代之,可在广域网链路上扩展到数千个节点。

性能基准测试:

| 指标 | 原生 DDS(RTPS,局域网) | 基于 Zenoh 的 DDS(广域网,50ms RTT) | 基于 Zenoh 的 DDS(局域网) |
|---|---|---|---|
| 发现时间(100 节点) | 2.3s | 4.1s | 2.8s |
| 吞吐量(1KB 消息) | 10,000 msg/s | 8,500 msg/s | 9,800 msg/s |
| 延迟(p99) | 1.2ms | 52ms | 1.8ms |
| 每节点内存 | 45MB | 62MB | 58MB |

*数据来自 Eclipse Zenoh 内部基准测试和社区测试(2025 年)。*

数据要点: 与局域网上的原生 DDS 相比,该插件引入了约 15% 的吞吐量降低和约 50% 的内存使用增加,但实现了广域网运行,且仅比网络基线增加了约 2ms 的延迟。对于之前没有广域网选项的分布式系统来说,这是一个有利的权衡。

相关仓库:
- `eclipse-zenoh/zenoh`:用 Rust 实现的核心 Zenoh 协议(约 3.5k Star)。
- `eclipse-zenoh/zenoh-plugin-ros2dds`:ROS2 专用插件,直接映射 ROS2 主题(约 500 Star)。
- `eclipse-zenoh/zenoh-dds-examples`:多站点 DDS 桥接的示例配置。

关键参与者与案例研究

该插件的主要推动者是 Eclipse Zenoh 团队,由 Julien Enoch(项目负责人)和 Pierre Avital(核心贡献者)领导。他们的战略是将 Zenoh 定位为边缘到云通信的通用数据平面,与 MQTT、Kafka 和专有 DDS 广域网解决方案直接竞争。

案例研究:自主移动机器人(AMR)
一家大型物流公司在三个相距 500 公里的仓库中部署了 200 台 AMR。每台机器人运行基于 DDS(Fast DDS)的 ROS2。此前,他们使用 VPN 连接仓库,导致频繁的发现超时和数据包丢失。在部署 Zenoh 插件并在每个站点安装 Zenoh 路由器后,他们实现了:
- 仓库间机器人协调的 99.9% 正常运行时间
- 网络配置复杂度降低 40%
- 无需重新配置 VPN 即可添加新机器人

竞品方案:

| 方案 | 方法 | 广域网支持 | 需要改代码 | 延迟开销 |
|---|---|---|---|---|
| zenoh-plugin-dds | 传输层代理 | 原生 | 无 | 1-2ms |
| RTI Connext DDS Secure WAN | 专有 DDS 扩展 | 是,通过基于 TCP 的 RTPS | 极少(配置) | 3-5ms |
| eProsima Fast DDS with TCP | TCP 传输 | 部分 | 无(配置) | 5-10ms |
| MQTT 桥接 | 协议转换 | 是 | 显著 | 10-20ms |

数据要点: Zenoh 插件提供最低的延迟开销且无需修改代码,使其成为对开发者最友好的选择。然而,RTI 的解决方案提供了企业级安全特性(DDS Security),这是 Zenoh 插件目前所缺乏的。

知名用户:
- Bosch Rexroth 将该插件用于分布式工业控制系统。
- NASA JPL 评估了其在多站点火星车遥测中的应用。
- Open Robotics(ROS2 维护者)官方推荐该插件用于多机器人场景。

更多来自 GitHub

Eclipse Xtext:工业级DSL工程的无名英雄,迎来15岁生日Eclipse Xtext 是一个成熟的开源框架,专门用于开发领域特定语言(DSL)。它能够从单一的语法定义中,自动生成解析器(基于ANTLR)、编辑器、编译器乃至调试器。该框架深度集成于Eclipse生态系统和Eclipse建模框架(EMEclipse Mita:声明式DSL能否终结嵌入式IoT开发的“手写C”之痛?Eclipse Mita是一个在Eclipse基金会孵化的开源领域特定语言(DSL),旨在彻底简化资源受限IoT设备的固件开发。开发者无需手动编写底层C代码来处理传感器初始化、数据采集和云端连接,而是通过声明式方式描述期望行为——指定读取哪开源AUTOSAR MCAL登陆STM32G0:低成本撬动汽车嵌入式开发大门长期以来,汽车软件生态系统被专有且昂贵的工具链所主导,为独立开发者、小型供应商及学术机构筑起了高耸的准入门槛。开源项目 'antares-autosar/openautosarmcal' 直接挑战了这一现状,为意法半导体STM32G0微控制查看来源专题页GitHub 已收录 2745 篇文章

时间归档

June 20261731 篇已发布文章

延伸阅读

Zenoh插件重写ROS2中间件规则:零拷贝、多协议、亚毫秒延迟Eclipse Zenoh推出的全新ROS2插件,以零拷贝、多协议桥接技术取代默认DDS中间件,将通信延迟降低高达80%,并在大规模机器人集群中实现吞吐量翻倍。这不仅是性能补丁,更是对分布式机器人系统通信方式的根本性重构。Eclipse uProtocol Python库:为汽车与物联网通信打造的轻量级标准Eclipse uProtocol的Python库(up-python)旨在为汽车与物联网生态系统中的设备间通信建立标准化方案。这款轻量级、语言无关的协议承诺实现无缝跨平台通信,但当前仍面临早期采纳阶段的挑战。我们深入剖析其架构、竞争格局与Cloudflare Workers变身代理工具:yonggekkk项目如何重塑边缘计算与网络自由一个GitHub仓库凭借将Cloudflare全球边缘网络转化为免费、无服务器的代理平台,已收获超过15000颗星。yonggekkk/cloudflare-vless-trojan项目支持Vless和Trojan协议,并可选配ECH-TLFlipt 客户端 SDK:边缘原生特性标志如何重塑实时应用控制Flipt 推出全新客户端评估 SDK,将特性标志逻辑直接部署到移动端、Web 和边缘设备,通过消除服务器往返将延迟降低 93%。这一架构变革在带来更快用户体验的同时,也引入了安全与一致性的新挑战。

常见问题

GitHub 热点“Zenoh Plugin Bridges DDS Across WANs Without Code Changes”主要讲了什么?

The eclipse-zenoh/zenoh-plugin-dds repository provides a lightweight bridge that allows DDS (Data Distribution Service) applications to leverage Zenoh's protocol for geographical r…

这个 GitHub 项目在“zenoh plugin dds ros2 multi robot fleet”上为什么会引发关注?

The zenoh-plugin-dds operates as a transparent proxy that intercepts DDS traffic at the transport layer. Under the hood, it uses the Zenoh protocol — a pub/sub/query protocol optimized for high-latency, lossy networks —…

从“zenoh dds wan latency benchmark vs native”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 213,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。