/// <summary> /// Initialize the producer => two stage construction to allow for a hook if needed /// </summary> public void Init() { _producer = new ProducerBuilder <string, string>(_producerConfig) .SetErrorHandler((consumer, error) => { s_logger.LogError($"Code: {error.Code}, Reason: {error.Reason}, Fatal: {error.IsFatal}"); _hasFatalProducerError = error.IsFatal; }) .Build(); _publisher = new KafkaMessagePublisher(_producer); EnsureTopic(); }
public KafkaMessageProducer(KafkaMessagingGatewayConfiguration globalConfiguration, KafkaMessagingProducerConfiguration producerConfiguration) { _producerConfig = new ProducerConfig { BootstrapServers = string.Join(",", globalConfiguration.BootStrapServers), ClientId = globalConfiguration.Name, MaxInFlight = globalConfiguration.MaxInFlightRequestsPerConnection, QueueBufferingMaxMessages = producerConfiguration.QueueBufferingMaxMessages, Acks = producerConfiguration.Acks, QueueBufferingMaxKbytes = producerConfiguration.QueueBufferingMaxKbytes, MessageSendMaxRetries = producerConfiguration.MessageSendMaxRetries, BatchNumMessages = producerConfiguration.BatchNumberMessages, LingerMs = producerConfiguration.QueueBufferingMax, RequestTimeoutMs = producerConfiguration.RequestTimeout, MessageTimeoutMs = producerConfiguration.MessageTimeout, RetryBackoffMs = producerConfiguration.RetryBackoff }; _producer = new ProducerBuilder <Null, string>(_producerConfig).Build(); _publisher = new KafkaMessagePublisher(_producer); }