当前位置: 首页 > news >正文

C++中间件DDS介绍

C DDS 库简介DDSData Distribution Service 是一种用于实时分布式系统通信的中间件 标准由 OMGObject Management Group 提出。它是一种发布/订阅Publish/Subscribe模式的数据通信框架广泛应用于嵌入式系统、物联网、航空航天、机器人等领域。C DDS 库是实现 DDS 标准的库常见的实现包括RTI Connext DDSReal-Time Innovations 提供OpenDDS开源实现Eclipse Cyclone DDS开源实现Fast DDS (以前称为 FastRTPS)由 eProsima 开发这些库提供了丰富的 API用于创建发布者、订阅者、定义数据类型和 QoSQuality of Service等功能。DDS 的核心概念DomainParticipant表示 DDS 系统的入口点属于特定的域。Publisher/Subscriber分别用于发布和订阅数据。Topic数据通信的主题定义通信数据的类型。DataWriter/DataReader负责数据的写入与读取。QoS定义数据传输的质量服务属性。一个简单的 C DDS 代码示例以下是使用 RTI Connext DDS 的一个简单例子展示如何发布和订阅一个简单的消息数据类型。请确保你已安装 RTI Connext DDS 或其他 DDS 实现并正确配置开发环境。1. 定义数据类型IDL 文件IDL (Interface Definition Language) 文件用于定义消息的数据结构DDS 会通过工具生成相应的 C 类型。2. 发布者Publisher代码3. 订阅者Subscriber代码DDS和MQTT的区别DDSData Distribution Service 和 MQTTMessage Queuing Telemetry Transport 是两种用于分布式系统通信的协议或标准它们在设计目标、特性和应用场景上有显著的区别。以下从多个方面对比它们1. 核心概念与设计目标DDS是一种 实时分布式系统通信中间件标准由 OMGObject Management Group 制定。提供 数据中心式的发布/订阅Publish/Subscribe模型并且支持 点对点通信。设计目标是为 低延迟、高吞吐量、实时性和可靠性 的系统提供支持主要用于嵌入式系统、工业自动化、国防、航空航天、机器人、汽车等场景。强调 数据优先Data-Centric通过 Topic 直接共享数据并支持复杂的 QoSQuality of Service 配置。MQTT是一种轻量级的 消息队列协议由 IBM 提出后成为 OASIS 标准。提供 发布/订阅Publish/Subscribe模型但以 消息传输 为核心。设计目标是为 低带宽、高延迟、不可靠网络如物联网设备提供简单可靠的通信方式广泛应用于物联网 (IoT)、智能家居、移动应用等场景。强调 消息优先Message-Centric通过 Broker 中转消息设备之间并不直接通信。2. 架构对比DDS分布式架构DDS 是去中心化的Brokerless无需中央服务器。所有参与者如发布者、订阅者可以直接通信。数据中心化基于 Topic 共享数据支持复杂的数据类型和强大的 QoS 配置。灵活性支持动态发现Dynamic Discovery系统中的节点可以动态加入或离开。MQTT中心化架构MQTT 依赖于一个 Broker中间服务器所有消息都通过 Broker 转发。消息传输基于 Topic 组织消息消息是无状态的数据类型简单通常是字符串或 JSON。设备简单性客户端实现非常轻量适用于低功耗设备。3. QoS服务质量支持DDSDDS 提供了 22 种 QoS 策略可以对实时性、可靠性、资源管理、延迟、传输顺序等进行精细控制。例如Deadline设置数据传输的时间期限。Latency Budget定义通信的延迟预算。Reliability支持可靠传输可靠模式或最佳传输不保证消息到达。Durability支持数据的持久化确保新订阅者可以获得历史数据。DDS 的 QoS 机制非常灵活适用于复杂场景。MQTTMQTT 提供了 3 种简单的 QoS 等级QoS 0消息最多发送一次不保证到达。QoS 1消息至少发送一次可能重复。QoS 2消息保证仅发送一次且不会重复最可靠。QoS 机制相对简单主要适用于低复杂度的 IoT 场景。4. 性能对比DDS由于 DDS 是去中心化的通信路径更短通常具有 低延迟、高吞吐量 的特性。支持 实时性 和 高可靠性适合对延迟、抖动敏感的场景如无人机控制、工业机器人。性能依赖于网络和硬件环境在高性能网络中表现极为出色。MQTTMQTT 由于采用中心化架构通信性能受 Broker 服务器 的影响。适合 低带宽网络 和 高延迟环境但在实时性要求高的场景中表现不如 DDS。消耗资源少非常适合低功耗设备。5. 使用场景DDS工业自动化实时监控和控制如工厂设备间通信。航空航天飞行器传感器数据共享、控制系统。机器人机器人操作系统如 ROS 2 的通信层基于 DDS。汽车自动驾驶汽车的传感器融合、车辆间通信。国防领域分布式作战系统、军事仿真。MQTT物联网 (IoT)智能家居、智能农业、环境监测。移动应用即时消息、状态更新。远程监控设备状态上传、警报通知。能源管理智能电网监测。智能交通传感器数据上传、车辆定位。6. 易用性与学习曲线DDSDDS 功能强大但 API 和配置相对复杂学习曲线较陡。开发和调试 DDS 应用需要对 QoS 策略和分布式系统有较深入的了解。多数 DDS 实现如 RTI Connext DDS提供大量工具和文档但仍需要较高的专业技能。MQTTMQTT 设计简单易于上手开发和部署快速。客户端实现轻量适合嵌入式和低功耗设备。由于依赖 Broker部署和管理集中化。7. 开源实现DDS常见的 DDS 实现包括RTI Connext DDS商业版功能强大OpenDDS开源Apache 2.0 许可证Eclipse Cyclone DDS开源Eclipse 基金会维护Fast-DDS以前称为 FastRTPS开源eProsima 提供这些实现通常支持多种编程语言C、Java、Python 等。MQTT常见的 MQTT BrokerMosquitto开源轻量级EMQX开源高性能支持分布式部署HiveMQ商业版支持企业级功能VerneMQ开源支持大规模连接MQTT 客户端库也非常丰富几乎支持所有主流语言。8. 总结对比特性 DDS MQTT架构 去中心化Brokerless 中心化需要 Broker实时性 高实时性低延迟 针对低带宽、高延迟环境QoS 复杂且灵活22 种 QoS 策略 简单3 种 QoS 等级适用场景 工业自动化、航空航天、机器人等 IoT、智能家居、移动应用等学习曲线 较陡需要较高专业技能 简单快速上手性能 高吞吐量、低延迟 适合低功耗和高延迟网络总结如果你的项目需要 实时性、高可靠性、复杂 QoS并且运行在高性能网络中例如工业自动化或机器人控制DDS 是更好的选择。如果你的项目需要 轻量、低功耗、简单消息传递运行在低带宽或不可靠的网络中例如物联网设备或智能家居MQTT 是更适合的选择。————————————————原文链接https://blog.csdn.net/yao_hou/article/details/145758883
http://www.rkmt.cn/news/1404502.html

相关文章:

  • ReRAM存内计算实战:从网络剪枝、权重量化到硬件映射的协同优化
  • 无人机视角落叶松健康状态检测落叶松病害检测数据集VOC+YOLO格式5004张4类别
  • jQuery 安装指南
  • 5大平台硬核横评!京东e卡回收资质、价格、到账速度全实测 - 博客万
  • 专业iOS崩溃分析:深度解析DSYMTools高效定位崩溃源码实战
  • Windows风扇控制终极指南:FanControl轻松实现零噪音系统
  • 突破GS/s瓶颈:可复位环形VCO-ADC如何消除噪声整形实现高带宽
  • 虚拟主播开发进阶:VTube Studio API深度解析与实战应用
  • Squirrel-RIFE:让每一帧都流畅如丝的视频补帧神器
  • ESP32 Arduino开发实战指南:从入门到精通的10个关键步骤
  • VLSI测试原理如何赋能硬件安全:逻辑加密、分割制造等DfTr技术解析
  • SQL UNION和UNION ALL性能差异与正确选型指南
  • 基于CPS的能源互联网接入设备:硬件实现与软件架构解析
  • ChatGPT公关声明紧急响应SOP(含72小时黄金窗口执行表):20年危机处理官首曝3级风险分级触发机制
  • 2026大理旅拍婚纱照甄选完整攻略|8家高口碑机构测评+风格取景+新手避坑全指南 - 江湖评测
  • 基于接触与虚拟点补偿的协作机器人与AMR高精度集成方法
  • 终极解决方案:KMS智能激活脚本让你永久免费激活Windows和Office
  • 边缘AI板载学习:模型压缩、高效推理与持续学习实战解析
  • 2026年最新定海区黄金回收白银回收铂金回收靠谱店铺权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 莘州文化
  • CPrune:编译器感知的模型剪枝,实现边缘AI部署的协同优化
  • StreamFX终极指南:如何为OBS Studio打造专业级直播特效系统
  • 国家中小学智慧教育平台电子课本解析工具:3步轻松获取官方教材PDF
  • PX4Ctrl起飞逻辑深度剖析:从电机加速曲线到期望状态生成,新手如何避免‘炸机’风险
  • CNN-LSTM混合模型:攻克Wi-Fi指纹室内定位中的设备异构性难题
  • 微信聊天记录永久保存终极方案:告别数据丢失的完整指南
  • iPSC 3D悬浮培养前必须掌握的2D种子训练:PBS Mini标准化培养策略与关键参数解析
  • 清华大学LaTeX论文模板thuthesis:从零开始打造完美学术论文
  • 教练辅助MARL框架:提升多智能体系统在智能体崩溃下的鲁棒性
  • SPT-AKI Profile Editor新手必看:服务器路径配置完全指南,告别“服务器未找到“错误
  • SQL-Lint:专业SQL代码质量守护者,预防数据灾难的智能检查工具