1
spring-kafkaを使用する春の起動アプリケーションがあります。 configプロパティを更新するときに、kafkaプロデューサ(kafkatemplate)を無効にしたいとします。私は条件付きのBeanを試して、applicationcontext refreshを使っています。実行時にスプリングカフカプロデューサを正常にシャットダウンします
spring-kafkaでkafkaproducerを正常にシャットダウンする方法はありますか?
こんにちはゲイリー - 私たちの必要性のために働くだろう。 destroy()が呼び出された後、メッセージが送信されたとき(createProducerの呼び出しを試みた) - 次のエラーが発生します。java.lang.IllegalStateException:プロデューサが閉じられた後に送信できません。 \t at org.apache.kafka.clients.producer.internals.RecordAccumulator.append(RecordAccumulator.java:172)〜[kafka-clients-0.10.1.1.jar:na] \t at org.apache.kafka.clients。 producer.KafkaProducer.doSend(KafkaProducer.java:474)〜[kafka-clients-0.10.1.1.jar:na] \t at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:436)〜 [kafka-clients-0.10.1.1.jar:na] – basu76
ここにコメントのようなものを入れないでください。それはうまくいかない。あなたの質問を編集し、あなたがそうしたと言ってコメントを追加する方が良いです。完全なスタックトレースを表示する必要がありますが、 'KafkaTemplate'キャッシュがプロデューサを参照しています。それは間違っている;毎回工場からプロデューサーを取り出す必要があります。私は[問題](https://github.com/spring-projects/spring-kafka/issues/232)を開いた。回避策として、新しい「KafkaTemplate」を作成して工場から新しいプロデューサを取得する必要があります。 –