【问题标题】:Kafka consumer client creation singleton instance vs static methodKafka消费者客户端创建单例实例与静态方法
【发布时间】:2017-12-07 08:55:53
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-05-19
      • 1970-01-01
      • 2011-02-27
      • 2012-11-12
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多