ZBLOG

The DURABILITY policy controls whether data writers should maintain samples after they have been sent to known subscribers. This policy applies to the topic, data reader, and data writer entities via the durability member of their respective QoS s...

持久性策略(DURABILITY policy)控制数据写入器在发送给已知的订阅者后是否保留样本。这个策略适用于主题、数据读取器和数据写入器实体,通过它们各自QoS结构中的durability成员来控制。以下是与持久性QoS策略相关的IDL定义:

enum DurabilityQosPolicyKind {
    VOLATILE_DURABILITY_QOS, // 最低持久性
    TRANSIENT_LOCAL_DURABILITY_QOS,
    TRANSIENT_DURABILITY_QOS,
    PERSISTENT_DURABILITY_QOS // 最高持久性
};

struct DurabilityQosPolicy {
    DurabilityQosPolicyKind kind;
};

默认情况下,kind被设置为VOLATILE_DURABILITY_QOS。

VOLATILE_DURABILITY_QOS表示样本在发送给所有已知订阅者后被丢弃。作为副作用,订阅者无法恢复在连接之前发送的样本。

TRANSIENT_LOCAL_DURABILITY_QOS表示与数据写入器相关/连接的数据读取器将接收到数据写入器历史上的所有样本。

TRANSIENT_DURABILITY_QOS表示样本会比数据写入器存在时间更长,并且只要进程存活,它们就会一直存在于内存中。这些样本被保留在内存中,但不会被持久化到永久存储。一个订阅了相同主题和分区的数据读取器将接收到属于相同主题/分区的所有缓存样本。

PERSISTENT_DURABILITY_QOS提供与瞬态持久性类似的功能,但缓存样本会被持久化并在进程重启后仍然存在。

当指定瞬态或持久性持久性时,DURABILITY_SERVICE QoS策略可以为持久性缓存指定额外的调整参数。

在创建数据写入器和数据读取器之间的关联时,会考虑持久性策略。为了创建关联,两端的值必须兼容。数据写入器的durability kind值必须大于等于数据读取器对应的值。durability kind值按照如下顺序排序: PERSISTENT_DURABILITY_QOS > TRANSIENT_DURABILITY_QOS > TRANSIENT_LOCAL_DURABILITY_QOS > VOLATILE_DURABILITY_QOS


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?