繁体   English   中英

kafka 流中 statestore 和 changelog 主题的用途?

[英]Purpose of statestore and changelog topic in kafka streams?

我有一个使用 stateStore(由 RocksDB 支持)的 kafka stream 应用程序。

stream 线程所做的就是从 kafka 主题中获取数据并将数据放入状态存储中。 (还有其他线程从 statestore 读取数据并进行业务逻辑处理)。

我观察到它因为 stateStore 而创建了一个新的 kafka 主题“changelog”。

但我没有明白“changelog”kafka 主题的用途是什么?

  • 为什么需要它(更改日志)?
  • statestore 和“changelog”kafka 主题之间有什么关系?
  • 谁将数据放入这个主题? (“变更日志”)

这个问题的简短回答是实现容错。

详情

changelog使 Kafka Streams 应用程序中的 State 存储具有容错能力。 当您的应用程序将更多数据摄取到 state 存储区时,它会被推送到changelog主题,因此如果运行应用程序的节点出现故障,那么changelog主题将用于加载具有最新 Z9ED39E2EA9319286B76A 的 state 存储库

每个应用程序线程或实例都有自己的changelog主题分区,以便在应用程序失败后重新启动后,每个实例都可以重新创建它的 state。

当对 state 存储进行更新时,Kafka Streams 会自动将数据推送到主题。

我建议阅读 Kafka Definitive Guide 的第 11 章——它包含对 Kafka Streams 架构和 stream 处理模式的很好解释。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM