Kafka消费者客户端创建单例实例与静态方法

时间:2016-09-12 23:04:54

标签: java design-patterns apache-kafka kafka-consumer-api

请告诉哪一个是创建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消费者客户端会有相当大的好处吗?

1 个答案:

答案 0 :(得分:1)

Kafka Consumer不是线程安全的,所以它不应该是Singleton。 但是对于Producer,因为它是线程安全的,建议使用单个实例。