kafka客户机创建单例示例与静态方法的比较

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

请说明哪一个是创建Kafka消费客户机的最佳实践。

public class KafkaConsumerFactory {

public static createKafKafkaConsumer(){
       KafkaConsumer consumer = new KafkaConsumer<   (getKafkaConsumerProperties());
      consumer.subscribe(Collections.Singleton.(getTopic()));
      return consumer;
}

或者

public class KafkaConsumerFactory {

private static KafkaConsumer consumer;  

@Synchronized
public static KafkaConsumer createKafKafkaConsumer(){

if(consumer = null)
    {
      consumer = new KafkaConsumer< (getKafkaConsumerProperties());
      consumer.subscribe(Collections.Singleton.(getTopic()));
    }

 return consumer;
}
}

在生产环境中使用单例Kafka消费客户机会有什么好处?

lc8prwob

lc8prwob1#

kafka消费者不是线程安全的,所以它不应该是单线程的。但对于producer,因为它是线程安全的,建议使用单个示例。

相关问题