嗨,我正在研究Confluent Kafka Consumer。我的经纪人中有多条记录。我现在想处理所有记录。以下是我对消费者的实现。
public ConsumeResult<string, GenericRecord> Consume(string topic)
{
ConsumeResult<string, GenericRecord> result;
try
{
result = consumer.Consume();
Commit(result);
return result;
}
catch (Exception e)
{
this.logger.Error("KafkaClient", $"Error sending message '{e.Message}'");
return null;
}
}
如果Broker内有多个记录,那么一个事件/消息我将使用GenericRecord获得时间。如果有多个记录,那么如何有效处理消费者?任何帮助,将不胜感激。谢谢
答案 0 :(得分:1)
您会循环播放。参见示例
https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/examples/AvroGeneric/Program.cs
while (true)
{
try
{
var consumeResult = consumer.Consume(cts.Token);
Console.WriteLine($"Key: {consumeResult.Message.Key}\nValue: {consumeResult.Value}");
}
catch (ConsumeException e)
{
Console.WriteLine($"Consume error: {e.Error.Reason}");
}
}