网站建设与维护岗位职责南京企业网站做优化
网站建设与维护岗位职责,南京企业网站做优化,泾川网站建设,静态商城网页模板OpenDDS、FastDDS数据分发服务中间件设计
软件架构
应用层DDS层RTPS层传输层
软件层次
FastDDS整体架构如下#xff0c;这里可以看到DDS和RTPS的关系。另外缺少一部分IDL#xff08;统一描述语言#xff09;#xff0c;其应该是Pub、Sub的反序列化、序列化工具。
在RT…OpenDDS、FastDDS数据分发服务中间件设计
软件架构
应用层DDS层RTPS层传输层
软件层次
FastDDS整体架构如下这里可以看到DDS和RTPS的关系。另外缺少一部分IDL统一描述语言其应该是Pub、Sub的反序列化、序列化工具。
在RTPS层主角是WriterReader其接口复杂和灵活。DDS层主角是PublisherSubscriber。 执行模型
FastDDS中每个节点也叫 DomainParticipant具有
一个 主程序线程用户持有一个 事件和周期性任务的线程一个 异步发送线程用于用户完成写入数据后异步得完成网络通信多个 接收线程每个reception channel取决于传输层的实现方式
网络传输
在传输上Fast-RTPS支持以下五种传输方式
UDPv4UDPv6TCPv4TCPv6SHM共享内存
当 Participant 创建时会自动的配置两个传输通道
SHM使用同一个机器上的参与者通信UDPv4同来与跨机器的参与者通信 RTPS的通信SHM实现
在同一Host中RTPS会采用更高效的SHMshared memory方式在participant间共享信息。这里有三个实现版本
共享内存传输 Shared Memory Transport 基本本版数据共享交付 Data Sharing Delivery零拷贝 ZERO-COPY communication 上面的图中可见通过减低Writer、Reader中对消息的备份减少内存的copy。可预见的越高共享的内存实现越依赖通信同步机制。最终的zero copy方案直接预设A、B节点能实现完美的读写交错。
实际的自动驾驶场景zero copy是十分必要的。
下图描述的是FastRTPS中的节点使用zero copy的实现。 底层实现原理
低延时、高吞吐量
UDP传输共享内存技术、零拷贝等技术
稳定性
主从负载均衡原理
下面是FastDDS的负载均衡原理的工作流程
主节点选举在FastDDS中一个节点被选为主节点它负责协调数据传输以及任务的分发。主节点的选举可能基于配置文件、节点优先级或其他条件。从节点注册通过与主节点建立连接从节点向主节点注册自己的存在。从节点可以提供资源例如CPU、内存的信息以便主节点进行任务分配时考虑。任务分配当主节点收到发布者的消息后它会根据当前系统的状态和从节点的资源情况确定将数据发送给哪些从节点。数据传输主节点将数据分发给各个从节点并确保数据的可靠传输。每个从节点负责接收并处理它们所分配到的数据。状态监控和更新主节点定期监控各个从节点的状态包括资源利用率、延迟等。根据这些状态信息主节点可以动态地重新分配任务实现动态的负载均衡。故障处理和容错如果主节点发生故障或失去连接FastDDS系统会根据事先定义的容错策略重新选择一个新的主节点。这样能够保证系统的连续性和可靠性。
参考文献
了解FastDDS、FastRTPS 的底层实现原理 - 知乎 (zhihu.com)
1. Getting Started — Fast DDS 2.12.0 documentation (eprosima.com)
【linux】图文并茂|彻底搞懂零拷贝Zero-Copy技术 - 知乎 (zhihu.com)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92229.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!