Kafka PersistentWindowStore 再平衡机制

Kafka PersistentWindowStore rebalancing mechanics

我正在基于 this confluent code 松散地为 Kafka Streams 应用程序创建一个 30 分钟的重复数据删除存储(以解决与 Kafka 的恰好一次处理保证不同的问题),并希望最小化拓扑启动时间.

此代码使用持久性 window 存储,这要求我指定要使用的日志段数。假设我想使用 2 个段,并且使用默认段大小 1GB,这是否意味着在重新平衡期间,客户端必须在应用程序启动之前读取 2GB 的数据?

段参数在 Kafka Streams 中配置了一些不同的东西——它与代理中的段无关(只是同名)。

使用窗口存储,存储的保留时间除以段数。如果一个段的所有数据都早于保留时间,则删除完整的段并创建一个新的空段。这些段,只存在于客户端。

需要恢复的记录数,仅取决于保留时间(和您的输入数据率)。它与段大小无关。段大小仅定义了较细粒度的旧记录过期的程度。