Apache kafka Kafka消费者向代理发送更多获取请求
我有一个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)) 当您的使用者分配到的分区中没有数据
- 心跳
- 投票请求
Heartbeat.interval.ms
(默认为3秒)
对于轮询请求,没有特定的间隔,这取决于您的代码。(只有一个上限(max.poll.interval.ms
))
当您的使用者分配到的分区中没有数据时,发送更频繁的轮询请求是绝对合理的。假设您有这样一个代码:
void consumeLoop() {
while (true) {
records = consumer.poll();
if(!records.isEmpty()) {
processMessages(records);
}
}
}
正如您看到的,如果轮询没有返回任何记录,那么您的消费者将立即发送另一个轮询请求。但如果有数据,您应该先处理这些记录,然后再发送下一个轮询请求