问题描述
应用程序是一个长期的消息接收器,应用程序接收上游消息并将消息转换为小消息,然后将这些小消息放入Kafka。
我发现来自 Reactor Kafka 的文档说:
当不再需要KafkaSender时,可以关闭KafkaSender实例。底层 KafkaProducer 关闭,关闭所有客户端连接并释放生产者使用的所有内存。
我的问题是:
我是否需要在每批消息发送后关闭 KafkaSender?在应用程序中使用 KafkaSender 的单例实例并在应用程序关闭时关闭它是否有意义?
谢谢。
解决方法
我认为有一个答案。 https://projectreactor.io/docs/kafka/release/api/reactor/kafka/sender/KafkaSender.html
将传出记录发送到 Kafka 集群的主题分区的反应式生产者。生产者是线程安全的,可用于将记录发布到多个分区。建议在客户端应用程序中为每个记录类型共享一个 KafkaSender。