我正在基于this confluent code松散地为Kafka Streams应用程序创建一个30分钟的重复数据删除存储(以解决Kafka的一个不同的问题 - 一次性处理保证),并希望最小化拓扑启动时间。
此代码使用持久性窗口存储,这要求我指定要使用的日志段数。假设我想使用2个段,并使用1GB的默认段大小,这是否意味着在重新平衡期间,客户端必须在应用程序启动之前读取2GB的数据?
答案 0 :(得分:3)
段参数在Kafka Streams中配置不同的东西 - 它与经纪人中的段无关(只是同名)。
使用窗口存储,商店的保留时间除以段数。如果所有数据都是段早于保留时间,则会删除整个段并创建新的空段。这些细分只存在于客户端。
需要恢复的记录数量,仅取决于保留时间(和输入数据速率)。它与细分市场规模无关。段大小仅定义细粒度旧记录的过期方式。