首页 > 解决方案 > Kafka 流状态存储分布

问题描述

我有一个在多个实例上运行的 kafka 应用程序,我想使用状态存储来缓存一些数据字段。在多个应用程序实例的情况下,如果一个实例出现故障,一个实例的本地状态存储是否会复制到另一个实例?当实例返回时会发生什么?状态存储如何连接到数据键以进行正确的重新分配?

标签: apache-kafkaapache-kafka-streams

解决方案


如果一个实例出现故障,一个实例的本地状态存储是否被复制到另一个实例?

如果您没有备用副本,那么该任务将从一开始就读取更改日志主题以重建存储,有效地制作副本,是的。

在文档中,

从 2.6 开始,Kafka Streams 将保证仅将任务分配给具有完全捕获的本地状态副本的实例(如果存在这样的实例)。在失败的情况下,备用任务将增加存在被捕获实例的可能性


状态存储如何连接到数据键以进行正确的重新分配?

分区映射到任务线程(参考同一页)。


推荐阅读