有没有办法限制Kafka消费者收到的数据?

时间:2017-11-02 18:18:02

标签: apache-kafka records consumer throttling

我正在阅读文档并找到max.poll.interval.ms属性,但它似乎不是我需要的配置。

基本上,我需要min.poll.interval.ms这样的东西告诉消费者每隔n秒轮询一次记录。

max.poll.records一起,我可以确保我的服务正在处理适当的负载。

1 个答案:

答案 0 :(得分:1)

这种方法不起作用。

您需要定期(在循环中)调用Consumer.poll(...),以获取新记录(如果有的话)。

如果您在同一个线程中记录处理和接收(轮询),那么如果处理时间过长,您的消费者将被淘汰出消费者群体而另一个将获得分区。

另一种方法是使用kafka-streams,如果你不想这样做的话。在具有相同application id的不同实例上启动流应用程序将提供某种负载平衡。