请说明哪一个是创建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条答案
按热度按时间lc8prwob1#
kafka消费者不是线程安全的,所以它不应该是单线程的。但对于producer,因为它是线程安全的,建议使用单个示例。