kafkaconsumer.close()为什么?

tzxcd3kk  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(584)

我是来问关于关闭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 ?

ruyhziif

ruyhziif1#

引自gwen shapira、neha narkhede、todd palino(o’reilly media)的“Kafka——权威指南”:
退出前始终关闭使用者。这将关闭网络连接和套接字。它还将立即触发重新平衡,而不是等待组协调器发现使用者停止发送心跳并且可能已死亡,这将花费更长的时间,因此导致较长的时间段内使用者无法使用来自分区子集的消息。
Kafka-权威指南

相关问题