我是来问关于关闭Kafka消费者。即使using线程退出,我也需要关闭kafka消费者吗?关闭它会不会泄露资源?
下面是一个代码示例:
public class MyThread extends Thread{
private KafkaConsumer<String, Message> kafkaConsumer;
@Override
public void run() {
kafkaConsumer = initConsumer();
while(true){
kafkaconsumer.poll(1000000)
//Code goes here.
}
}
}
是吗 kafkaConsumer
关闭时间 MyThread
退出使用 System.exit
?
1条答案
按热度按时间ruyhziif1#
引自gwen shapira、neha narkhede、todd palino(o’reilly media)的“Kafka——权威指南”:
退出前始终关闭使用者。这将关闭网络连接和套接字。它还将立即触发重新平衡,而不是等待组协调器发现使用者停止发送心跳并且可能已死亡,这将花费更长的时间,因此导致较长的时间段内使用者无法使用来自分区子集的消息。
Kafka-权威指南