нетто и кафка. Я использую последнюю версию Kafka в .Net. Я пытаюсь написать код для batchproducer. Предыдущая бета-версия имеет метод BeginProduce. Теперь последняя версия Kafka не имеет этого метода. Ниже мой простой метод для продюсера.
public async Task ProduceAsync<TEvent>(TEvent ipmEvent, string topicName)
where TEvent : ISpecificRecord
{
using (var producerClient = kafkaProducerConnection.ProducerBuilder<Null, TEvent>())
{
await producerClient.ProduceAsync(topicName, new Message<Null, TEvent> { Value = ipmEvent }).ContinueWith(
reportTask =>
{
if (reportTask.IsCompletedSuccessfully)
{
var deliveryReport = reportTask.Result;
logger.LogInformation($"KafkaProducer.ProduceAsync: Delivered message to {deliveryReport.TopicPartitionOffset}");
}
else if (reportTask.IsFaulted && reportTask.Exception != null)
{
var exceptionMessages = string.Join(". ", reportTask.Exception.InnerExceptions.Select(e => e.Message));
logger.LogError($"KafkaProducer.ProduceAsync failed - {exceptionMessages}");
throw new Exception($"Error sending message, {reportTask.Exception}");
}
else
{
logger.LogError($"KafkaProducer.ProduceAsync failed");
throw new Exception($"Error sending message {reportTask.Exception}");
}
});
}
}
Может ли кто-нибудь помочь мне написать пакетного производителя с использованием .net? Любая гепатит был бы оценен. Спасибо