Должен ли я закрыть KafkaSender после отправки пакета сообщений ?

#apache-kafka #reactor-kafka

Вопрос:

Приложение является долгосрочным получателем сообщений, приложение получает восходящее сообщение и преобразует сообщения в небольшие сообщения, а затем помещает эти небольшие сообщения в Кафку.

Я нашел документ из реактора, сказал Кафка:

Руководство по реактору Кафки

Когда KafkaSender больше не требуется, экземпляр KafkaSender можно закрыть. Базовый KafkaProducer закрывается, закрывая все клиентские соединения и освобождая всю память, используемую производителем.

Мой вопрос таков:

Должен ли я закрывать KafkaSender после каждой отправленной партии сообщений ? Это делает sences, которые используют одноэлементный экземпляр KafkaSender в приложении и просто закрывают его при завершении работы приложения?

Спасибо.

Комментарии:

1. Насколько часты ваши партии? Если дольше, чем ежечасно, вероятно, безопасно закрыть его

Ответ №1:

Я думаю, что ответ есть. https://projectreactor.io/docs/kafka/release/api/reactor/kafka/sender/KafkaSender.html

Реактивный производитель, который отправляет исходящие записи в тематические разделы кластера Кафки. Производитель является потокобезопасным и может использоваться для публикации записей в нескольких разделах. Рекомендуется, чтобы для каждого типа записей в клиентском приложении был предоставлен общий доступ к одному KafkaSender.