请告诉哪一个是创建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消费者客户端会有相当大的好处吗?
答案 0 :(得分:1)
Kafka Consumer不是线程安全的,所以它不应该是Singleton。 但是对于Producer,因为它是线程安全的,建议使用单个实例。