多个分区的 Kafka 本地状态存储

Kafka local state store of multiple partitions

我正在使用 kafka 处理器 api 并且我从 3 个分区的主题(我有 3 个代理)创建了一个状态存储,我有 1 个流实例。我想知道当我到达本地国营商店时,我能拿到所有钥匙吗?为什么某些键有效而某些键无效?正常吗? 谢谢

对于这种情况,应用程序实例的数量无关紧要。因为输入主题有 3 个分区,所以状态存储是用 3 个分片创建的。处理发生在 3 个并行任务中。每个任务实例化您的拓扑副本,处理一个输入主题分区,并使用一个分片。

比较:https://kafka.apache.org/21/documentation/streams/architecture

如果您想访问不同的分片,可以使用 "Interactive Queries" 功能对所有分片进行 key/value 查找(并查询键范围)。

此外,这是全局状态存储的概念,它将所有分区的数据加载到单个存储中(不是分片)。但是,与 "regular" 商店相比,它提供了不同的语义,因为商店更新与其他处理不同步。