Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka消费者向代理发送更多获取请求_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka Kafka消费者向代理发送更多获取请求

Apache kafka Kafka消费者向代理发送更多获取请求,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我有一个Kafka消费者,它在给定的获取间隔内获取代理。它在给定的时间间隔内进行抓取,当消息出现在主题中时就可以了。但是我真的不知道为什么消费者在kafka主题中没有消息的情况下发送更多的获取请求。通常,消费者向代理发送两种类型的请求: 心跳 投票请求 心跳信号通过单独的线程发送,其间隔配置为Heartbeat.interval.ms(默认为3秒) 对于轮询请求,没有特定的间隔,这取决于您的代码。(只有一个上限(max.poll.interval.ms)) 当您的使用者分配到的分区中没有数据

我有一个Kafka消费者,它在给定的获取间隔内获取代理。它在给定的时间间隔内进行抓取,当消息出现在主题中时就可以了。但是我真的不知道为什么消费者在kafka主题中没有消息的情况下发送更多的获取请求。

通常,消费者向代理发送两种类型的请求:

  • 心跳
  • 投票请求
心跳信号通过单独的线程发送,其间隔配置为
Heartbeat.interval.ms
(默认为3秒)

对于轮询请求,没有特定的间隔,这取决于您的代码。(只有一个上限(
max.poll.interval.ms
))

当您的使用者分配到的分区中没有数据时,发送更频繁的轮询请求是绝对合理的。假设您有这样一个代码:

 void consumeLoop() {
    while (true) {
        records = consumer.poll();
        if(!records.isEmpty()) {
            processMessages(records);
        }
    }
}
正如您看到的,如果轮询没有返回任何记录,那么您的消费者将立即发送另一个轮询请求。但如果有数据,您应该先处理这些记录,然后再发送下一个轮询请求