opendds qos策略之LIVELINESS

LIVELINESS策略的含义

中文含义“活跃性”。“活跃性”策略是指在发布-订阅通信中用于检测发布者(writer)是否处于活跃状态的机制。活跃性机制用于确保发布者仍然存在,并且可以传递数据给订阅者(reader),以避免订阅者获取过时或者无效的数据。

LIVELINESS策略哪些对象可以设置

datawriter、datareader和topic这三个类型的对象可以设置“活跃性”策略。如果对topic设置该策略,则订阅或者发送该主题的writer或者reader的都会遵守该topic的LIVELINESS策略;如果对writer或者reader设置该策略,那么仅影响设置的wirter或者reader。

LIVELINESS策略与lease_duration的关系

lease_duration中文含义“租约期”,意思是在这个时间期限内,需要收到发送发出的“活跃性”通知。

LIVELINESS策略分几种

  • AUTOMATIC_LIVELINESS_QOS:这是自动策略,即在租约期内如果发送者未发送任何数据,那么发送者会自动发送一条网络数据,来保持发送者的活跃性。
  • MANUAL_BY_PARTICIPANT_LIVELINESS_QOS:手动策略,需要开发者利用domain participant对象在一定时间间隔内需要发送一个样本数据或者显式的调用接口(assert_liveliness())来保持活跃性
  • MANUAL_BY_TOPIC_LIVELINESS_QOS:主题对象手动策略,需要开发者利用绑定该主题的writer发送样本数据或者显示调用接口的方式来实现活跃性的保持。
liveliness kind的值的大小关系
MANUAL_BY_TOPIC_LIVELINESS_QOS >
MANUAL_BY_PARTICIPANT_LIVELINESS_QOS >
AUTOMATIC_LIVELINESS_QOS

LIVELINESS丢失会发生情况

如果某个writer的在租约期内“活跃性”丢失,则会在reader的绑定的listenr中触发事件LIVELINESS_CHANGED_STATUS

LIVELINESS策略在建立连接中的作用

发送端和订阅端建立连接的过程中要考虑这二者之间该策略的兼容性。只有二者兼容连接才允许建立。

兼容策略:

(1)datawriter和datareader活跃性不仅需要考虑LIVELINESS还需要考虑lease_duration

(2)datawirer的LIVELINESS的值一定大于等于datareader的LIVELINESS的值

(3)datawriter的lease_duration策略的值一定要小于等于datareader的lease_duration的值

只有满足上面几个条件,连接才能够建立

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值