Kafka Stream Process API批量提交(基于消息数)

时间:2018-04-12 15:20:18

标签: apache-kafka apache-kafka-streams

我使用的是Kafka Processor API,我不想只使用基于时间的方法来决定何时在任务中提交已处理的消息,但我会基于一个数字来做已处理的消息或超时。 有没有办法在Java中实现它?

1 个答案:

答案 0 :(得分:1)

处理器API允许您"请求"通过ProcessorContext#commit()提交。调用此方法,Kafka Streams将尽快提交。这应该允许你在这个计数器中实现一些Processor内部计数器并调用commit()。

此外,您可以使用配置提交间隔,或者有效地将其设置为Long.MAX_VALUE

您还可以根据事件时间或挂钟时间来安排标点符号并从那里调用commit()以获得"超时"你想要的行为。