spring kafka 在运行时正常关闭生产者

spring kafka shutting down producer gracefully during runtime

我们有一个 spring 引导应用程序,它使用 spring-kafka。我们想在更新配置 属性 时禁用 kafka 生产者 (kafkatemplate)。我已经尝试使用条件 bean,并使用 applicationcontext 刷新。

有没有办法用 spring-kafka 优雅地关闭 kafkaproducer ?

您可以在 DefaultKafkaProducerFactory 上调用 destroy(),它会关闭(单例)生产者,但下次某些代码调用 createProducer() 时,会创建另一个生产者;目前没有办法阻止这种情况。当您不想创建生产者时,您需要将工厂子类化并抛出异常。