2016-09-12 3 views
0

カフカコンシューマクライアントを作成するためのベストプラクティスを教えてください。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; 
} 
} 

本番環境でシングルトンカフカの消費者のクライアントを持つのいずれかの大きな利点がありますか?

答えて

1

カフカコンシューマーはスレッドセーフではないため、シングルトンであってはいけません。 しかし、プロデューサの場合、スレッドセーフなので、単一のインスタンスを持つことをお勧めします。

関連する問題