提问者:小点点

Kafka Streams删除消耗的重新分区记录,以减少磁盘使用


我们有一个kafka的实例,大约有50M条记录,每天大约有100k的输入,所以在kafka世界里没有什么疯狂的。当我们想用一个更复杂的流应用程序(有许多不同的聚合步骤)重新处理这些记录时,磁盘使用会从重新分区主题中变得非常疯狂。根据我们的理解,这些主题在kafka1.0.1和Long. Max中使用标准保留时间(14天?)。这是非常不方便的,因为对于重新分区主题来说,在我们的例子中,每条记录在聚合完成后只读取一次,然后可以删除。

所以我们的问题是,是否有任何方法可以在kafka流中配置一个设置,在记录被处理后清除它们?我已经看到有一些方法可以用purgeDataBy()(https://issues.apache.org/jira/browse/KAFKA-4586)来做到这一点。

作为参考,部分应用程序中的一些尺寸:

表1(更新日志,紧凑~2GB)--

(这是我的第一个堆栈溢出问题,因此感谢任何反馈,提前感谢!)


共1个答案

匿名用户

Kafka Streams使用purgeDataBy()API因为1.1发布:https://issues.apache.org/jira/browse/KAFKA-6150

您不需要启用它(也不能禁用它)。