Я использую dotnet для создания приложения Kafka и обнаружил пакет NuGet это от Confluent.
С документацией все в порядке, но мне было интересно следующее: у меня есть контроллер, и я буду получать несколько запросов, где я буду использовать производителя для вставки данных в топик Kafka. Но я не уверен, что делать с классом ProducerBuilder
. Должен ли я создавать производителя для каждого запроса или только производителя на время жизни приложения? Каковы плюсы и минусы?
Экземпляры производителя должны создаваться только один раз для каждой уникальной конфигурации производителя. Один экземпляр может писать во многие темы. Вам нужен строитель, чтобы получить экземпляр.
Вы должны иметь возможность внедрить встроенный Producer в свои классы Service/Controller, а не перестраивать его по каждому запросу.
Вы также не должны закрывать производителя после каждого запроса, только во время жизненного цикла вашего приложения.
Хорошо, это приятно слышать. Их примеры всегда показывают что-то вроде
using (var prod = ProducerBuilder(...)
, поэтому я предполагаю, что в этом случае мне нужно сохранитьIProducer
как поле, реализоватьIDisposable
и вручную вызватьDispose
у производителя.