kafka流中状态存储和变更日志主题的用途



我有一个kafka流应用程序,它在其中使用stateStore(由RocksDB支持(。

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

我观察到,由于stateStore,它创建了一个新的kafka主题"changelog"。

但我不明白"变更日志"卡夫卡主题有什么用?

  • 为什么需要它(变更日志(
  • statestore和"changelog"kafka主题之间的关系是什么
  • 谁将数据放入此主题?("变更日志"(

这个问题的简单答案是实现容错。

详细信息

changelog使您的Kafka Streams应用程序中的State Store具有容错性。当应用程序将更多数据摄入状态存储时,它会被推送到changelog主题,因此,如果运行应用程序的节点出现故障,则使用changelog主题加载具有最新状态的状态存储。

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

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

我建议阅读Kafka最终指南的第11章,其中包含了对Kafka Streams架构和流处理模式的非常好的解释。

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新