这是关于Liveliness QoS(服务质量)的说明,通常用于实时数据传输系统中,以确保数据发布者和订阅者之间的连接有效性。以下是对内容的总结与要点提炼:
Liveliness QoS 配置
Lease Duration
- 使用
-l <duration>
或--liveliness <duration>
设置端点在认为数据写入器不再活跃之前需等待的租约持续时间。
- 使用
Liveliness Assert Period
- 使用
--liveliness-assert <period>
来配置参与者发送连续活跃消息之间的周期。
- 使用
Liveliness Kind
- 设定如何判断数据写入器为“活跃”状态:
- AUTOMATIC:只要本地进程和连接存在,所有实体都被视为活跃。
- MANUAL_BY_PARTICIPANT:如果任一实体声明其活跃性,则认为同一DomainParticipant中的所有其他实体也都是活跃的。
- MANUAL_BY_TOPIC:至少需要一个实例声明其活跃性以认为它是活跃的。
- 设定如何判断数据写入器为“活跃”状态:
注意事项
--liveliness-assert
的配置仅在 liveliness QoS 类型为 AUTOMATIC 或 MANUAL_BY_PARTICIPANT 时生效,并且<period>
必须小于租约持续时间。- 发布者应用程序的租约持续时间必须大于订阅者应用程序的租约持续时间,否则两个端点被视为不兼容。
- 存在一种 liveliness kind 兼容性规则,检查数据读取器和写入器之间的兼容性。如下表所示:
数据读取器 Liveliness QoS Kind | Automatic | Manual by Participant | Manual by Topic |
---|---|---|---|
Automatic | ✔️ | ✔️ | ✔️ |
Manual by Participant | ✖️ | ✔️ | ✔️ |
Manual by Topic | ✖️ | ✖️ | ✔️ |
Sending Samples Period
- 使用
-i <period>
或--interval <period>
来配置发布者应用程序发送样本的周期(以毫秒为单位),该周期应始终小于租约持续时间。
- 使用
如果未配置
--liveliness
或--liveliness-assert
,则会使用 eProsima Fast DDS 的默认值(无限)。
总结
Liveliness QoS 是实现高效且可靠的数据通信的重要工具,通过合理配置可以确保系统在网络变化或节点失效时能够快速响应并进行调整。在开发实时系统时,要特别注意各个参数之间的关系与兼容性。
内容由零声教学AI助手提供,问题来源于学员提问