package com.jthink.skyeye.client.kafka; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.Producer; import java.util.Map; /** * JThink@JThink * * @author JThink * @version 0.0.1 * @desc double check实现KafkaProducer的懒加载 * @date 2016-09-09 09:02:34 */ public class LazySingletonProducer { private static volatile Producer<byte[], String> producer; /** * 私有化构造方法 */ private LazySingletonProducer() { } /** * 实例化 * @param config * @return */ public static Producer<byte[], String> getInstance(Map<String, Object> config) { if (producer == null) { synchronized(LazySingletonProducer.class) { if (producer == null) { producer = new KafkaProducer<byte[], String>(config); } } } return producer; } /** * 是否初始化 * @return */ public static boolean isInstanced() { return producer != null; } }