中间件交接文档

1.L3 QOS 设计逻辑

L3需要做跨板隔离,当前版本在服务发现的两个阶段都实现了基于分区的隔离机制,分别为PDP分区隔离,EDP分区隔离

Partition QoS Policy

该 QoS 策略允许在由 Domain ID 引入的物理分区内部,再引入一个逻辑分区。 为了让 DataReader 能够看到 DataWriter 所做的变更,不仅 Topic 必须匹配,而且它们至少需要共享一个逻辑分区(参见 PartitionQosPolicy)。

在同一个 Domain ID(物理网络)内,DataWriter(发布者)和 DataReader(订阅者)要想成功匹配并通信,除了常规条件(Topic 名称相同、消息类型兼容、其他 QoS 兼容)外,还必须至少共享一个相同的 Partition 名称。这种隔离手段,性能开销极小(只是字符串比较),却能提供非常强的逻辑隔离保障。

  1. PDP 阶段(Participant 发现)已经过滤: 如果 Participant 级别的 Partition 不匹配,很多实现甚至不会完成 Participant 的相互发现(因为 PDP 报文已携带 Partition 信息)。 → 这时根本不会进入 EDP 阶段。
  2. 即使 PDP 阶段通过了,EDP 阶段也会二次拦截 : 在 EDP(端点宣告)阶段,当 DataWriter 宣告自己的 Publication 或 DataReader 宣告 Subscription 时,报文中会携带完整的 Partition 列表。 接收方在处理 EDP 报文时,会先检查 Partition 是否有交集:
    • 有交集 → 继续后续 QoS、Topic 等匹配逻辑,可能发送匹配的 EDP 响应报文。
    • 无交集直接丢弃该 EDP 报文,不进行后续匹配,也不发送任何响应报文

结论 : Partition 不匹配时,EDP 报文要么根本不发,要么发了也会被对方立即丢弃,不会建立任何通信关系,也不会浪费网络带宽继续后续匹配流程。

PDP: 进程级别的分区隔离,两个进程间必须有同名的Partition Name,PDP报文才会在两个进程间发送接收匹配,没有同名的分区名,直接不发PDP报文

EDP: DR/DW级别的匹配,需要校验DR与DW之间的分区名是否一致,DW与DR直接必须有同名的Partition Name,DR与DW直接才能完成匹配,进行通信,否则不发EDP报文

代码说明:

代码修改主要在cpp:

修改点:读取逻辑,存储逻辑

2.配置使用方式

以A板进程与B板进程跨板通信为例,B板发A板收,需要按照以下配置

3.最近合入记录

|----|------|------|------|
| MR | 合入内容 | 影响范围 | 注意事项 |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |

4.注意点

AB板间的通信不能走组播地址,直接抓包已经看过

5.常见问题 & 排查指南

1.为了手动测试,Python命令和程序,在QOS文件中没有配置隔离,直接可以跨板通信

2.如果在两个进程间通信需要配置,需要查看发送接收进程日志,不能只echo

3.配置QOS后,需要检查程序是不是全都正常启动,通信是否正常

4.需要满足AB完全隔离,则A板程序在A分区通信,B板程序在B分区通信,需要跨板通信的进程在C分区上通信

5.若某个程序,比如AB板都有zdi_ehr这个程序,这两个程序只想各自接收两个程序数据,其他进程的数据不接收,则需要另外开启一个分区通信

6.配置完分区隔离的topic,需要查看topic hz是否翻倍

7.可查看DDS日志分区名是否配置成功

  1. rviz 通信交接

1.通信排查

板子跟rviz docker需要网络盒子连接,,且互相可以ping通

板子内需要先执行replace.sh脚本

检查rviz笔记本ip,子网掩码是否配置成功

检查rviz docker qos 是否包含板子ip

检查docker内是否有topic ,topic是否有输出

检查板子上程序是否启动成功

检查板子上qos文件是否包含rviz笔记本IP

  1. rviz界面

rviz界面时间戳是否打印正常

rviz界面是否显示车道线,没有车道线需要先标定

相关推荐
LucidX2 小时前
Docker核心操作实战
运维·docker·容器
隔壁阿布都2 小时前
Docker Compose中的网络管理
运维·docker·容器
TG:@yunlaoda360 云老大2 小时前
华为云国际站代理商TaurusDB的读写分离是如何实现的?
服务器·数据库·华为云
Ghost Face...2 小时前
U-Boot与PMON:配置与设备树解析对比
linux·单片机·嵌入式硬件
云和数据.ChenGuang2 小时前
运维工程师技术教程之Pull Requests(PR)
运维·分布式·git·数据库运维工程师·运维教程
Blurpath2 小时前
什么是 ISP 代理?双 ISP 代理又是什么?一文讲清原理与应用场景
服务器·网络·ip代理·静态代理·住宅代理
TG:@yunlaoda360 云老大2 小时前
华为云国际站代理商如何配置GaussDB的读写分离权重?
服务器·华为云·gaussdb
小快说网安2 小时前
抗 DDoS 防护在等保测评中的权重提升:云服务器如何通过防护能力加分?
运维·服务器·ddos·等保测评
翼龙云_cloud2 小时前
阿里云渠道商:如何快速解决更换阿里云GPU公网IP后出现的网络故障?
运维·tcp/ip·阿里云·云计算