[英]Purpose of statestore and changelog topic in kafka streams?
我有一个使用 stateStore(由 RocksDB 支持)的 kafka stream 应用程序。
stream 线程所做的就是从 kafka 主题中获取数据并将数据放入状态存储中。 (还有其他线程从 statestore 读取数据并进行业务逻辑处理)。
我观察到它因为 stateStore 而创建了一个新的 kafka 主题“changelog”。
但我没有明白“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.