1
KafkaTemplateはスプリングブートスレッドセーフです。 1つのKafkaTemplateを作成し、これを使用して、Webサービスで複数のリクエストに対して同じカフカトピックに情報を送信できますか?KafkaTemplateはスレッドセーフです
KafkaTemplateはスプリングブートスレッドセーフです。 1つのKafkaTemplateを作成し、これを使用して、Webサービスで複数のリクエストに対して同じカフカトピックに情報を送信できますか?KafkaTemplateはスレッドセーフです
はい、KafkaTemplate
はスレッドセーフであるように設計されています。あなたはそのsource codeを見れば、あなたは以下のメンバ変数の宣言を参照してください。ThreadLocal
とvolatile
変数の定義から判断
protected final Log logger = LogFactory.getLog(this.getClass()); //NOSONAR
private final ProducerFactory<K, V> producerFactory;
private final boolean autoFlush;
private final boolean transactional;
private final ThreadLocal<Producer<K, V>> producers = new ThreadLocal<>();
private RecordMessageConverter messageConverter = new MessagingMessageConverter();
private volatile String defaultTopic;
、あなたはそれが複数のスレッドから使用するように設計され、したがって、それはスレッドでなければならないことを推測することができます-safe(そうでない場合、バグ報告を提出する必要があります)。
デザイナーが情報を@ThreadSafe
に注釈していた場合、または少なくともクラスのJavaDocコメントでこれを指摘していた方がいいでしょう。
もっと一致しませんでした。オープンソースには数多くの良いライブラリがありますが、ソースコードのドキュメントや注釈については、ほとんどまたは非常に簡単です。 JDKは私が今までに見た中で最もよく文書化されたJavaソースコードです。 –