在上面的段落中,我们讨论了Durability QoS(持久性质量服务)的概念,特别是在数据写入者和数据读取者之间的兼容性问题。
Durability QoS 概述
Durability QoS:
- 它定义了如何处理数据样本,当一个新的数据读取者(late-joiner)加入时,可能会对之前已存在的数据感兴趣。
- 有两种主要的配置:
- VOLATILE(易失性): 忽略过去的数据样本。如果没有活动的读取者,写入的数据将被丢弃,新的读取者无法访问到这些样本。
- TRANSIENT_LOCAL(瞬态本地): 会保留过去的数据样本。即使新读取者加入网络后,它也能获取到以前写入的数据样本。
默认设置:
- 如果使用命令行参数
--transient-local
,则对应端点将配置为TRANSIENT_LOCAL
持久性QoS;否则默认配置为VOLATILE
。
- 如果使用命令行参数
可靠性要求:
- 使用
TRANSIENT_LOCAL
持久性QoS 配置时,必须将 可靠性 QoS 设置为RELIABLE
,确保传输的可靠性。
- 使用
兼容性矩阵解释
该表格描述了数据读取者和数据写入者之间在不同持久性QoS类型下的兼容情况:
数据写入者 Durability QoS 类型 | ||
---|---|---|
Volatile | Transient local | |
数据读取者 Durability QoS 类型 | ||
Volatile | ✔️ | ✔️ |
Transient local | ✖️ | ✔️ |
第一行 (Volatile):
- 当数据写入者是
Volatile
时:- 数据读取者也是
Volatile
: 兼容 ✔️ - 数据读取者是
Transient local
: 兼容 ✔️
- 数据读取者也是
- 当数据写入者是
第二行 (Transient local):
- 当数据写入者是
Transient local
时:- 数据读取者是
Volatile
: 不兼容 ✖️ - 数据读取者也是
Transient local
: 兼容 ✔️
- 数据读取者是
- 当数据写入者是
总结
通过这个矩阵,我们可以看出,在选择持久化策略时,不同组合间是否能够正常工作。在实际应用中,这有助于开发人员确保所用组件能够无缝协作,以实现预期功能。尤其是在需要支持 late-joiner 的场景中,更要谨慎选择适合的持久化策略。
内容由零声教学AI助手提供,问题来源于学员提问