我正在使用具有kStream-kstream和kStream-ktable加入的流处理器,并且还使用State Store在执行JOIN时删除重复项。
我们一直在为该处理器执行负载测试,并且主题中的消息正在增长,这导致流处理器需要很长时间(〜1小时(才能消耗ChangElog主题并在重新启动时初始化状态存储/重新部署发生。
我们的主题保留了7天。
发生这种情况有多种原因:
- 您的经纪性能,即您的KStream应用程序可以从每个经纪人中获取多少数据
- 您的KStream性能
- 您的序列化格式(如果使用AVRO,数据大小将较小(
避免昂贵重新启动的解决方案是拥有持续的本地州商店。例如,您可以将默认状态存储文件夹(/tmp/kafka-streams(映射到某种持久卷