现在我正在关注 OnMessage 事件处理程序的简单/高级消费者示例,性能很差。(每分钟 120k 条消息与(使用我们的 C++ 库每分钟 1M 条消息)
通过等待 OnMessage 事件而不是实现繁忙的循环并使用 .Consume(TimeSpan) 来消耗消息可能是延迟?
var config = new Config() { GroupId = "example-csharp-consumer" };
using (var consumer = new EventConsumer(config, "127.0.0.1:9092"))
{
consumer.OnMessage += (obj, msg) =>
{
string text = Encoding.UTF8.GetString(msg.Payload, 0, msg.Payload.Length);
Console.WriteLine($"Topic: {msg.Topic} Partition: {msg.Partition} Offset: {msg.Offset} {text}");
};
consumer.Subscribe(new []{"testtopic"});
consumer.Start();
Console.WriteLine("Started consumer, press enter to stop consuming");
Console.ReadLine();
}