ZBLOG

3.1.2.1.2. DestinationOrderQosPolicy Warning This QoS Policy will be implemented in future releases. Multiple DataWriters can send messages in the same Topic using the same key, and on the DataReader side all those messages are stored within th...

3.1.2.1.2. DestinationOrderQosPolicy

警告

此 QoS 策略将在未来版本中实现。

概述

多个数据写入器(DataWriters)可以使用相同的键在同一主题下发送消息,并且在数据读取器(DataReader)端,所有这些消息都存储在同一个数据实例中(参见 DestinationOrderQosPolicy)。该 QoS 策略控制确定这些消息的逻辑顺序的标准。系统的行为取决于 DestinationOrderQosPolicyKind 的值。

QoS 策略数据成员列表

数据成员名称 类型 默认值
kind DestinationOrderQosPolicyKind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS

注意:此 QoS 策略适用于主题、数据读取器和数据写入器实体。它不能在启用的实体上更改。

警告

为了使数据写入器和数据读取器匹配,它们必须遵循兼容性规则。有关详细信息,请参见兼容性规则部分。

DestinationOrderQosPolicyKind

有两种可能的值(见 DestinationOrderQosPolicyKind):

  • BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS:这表示根据每个 DataReader 的接收时间对数据进行排序,这意味着最后接收到的值应该被保留。这种选项可能导致每个 DataReader 最终拥有不同的最终值,因为 DataReaders 可能以不同的时间接收数据。

  • BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS:这表示根据消息发送时的数据写入器时间戳对数据进行排序。这种选项保证了最终值的一致性。

这两种选项都依赖于 OwnershipQosPolicy 和 OwnershipStrengthQosPolicy 的值,这意味着如果 Ownership 设置为 EXCLUSIVE 且最后一个值来自具有低所有权强度的数据写入器,则该值将被丢弃。

兼容性规则

为了维护 DestinationOrderQosPolicy 在具有不同 kind 值的数据读取器和数据写入器之间的兼容性,数据写入器的 kind 必须大于或等于数据读取器的 kind。不同 kinds 之间的顺序为:

  • BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS < BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS

可能组合的表格

DataWriter kind DataReader kind 兼容性
BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS
BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS

总结

通过配置 DestinationOrderQosPolicy,可以有效地管理多个数据写入者发送到同一主题下的数据流,同时保持消息顺序一致或基于接收时间。如果正确应用这些策略和规则,可以确保系统的一致性与性能优化。在设计系统时,需要特别关注各个组件间兼容性的需求,以避免潜在的不匹配问题。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7780

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?