C# Kafka消费者承诺线程安全
我正在使用dotnet客户端C# Kafka消费者承诺线程安全,c#,apache-kafka,kafka-consumer-api,confluent-platform,C#,Apache Kafka,Kafka Consumer Api,Confluent Platform,我正在使用dotnet客户端 namespace Confluent.Kafka { public class Consumer<TKey, TValue> : IDisposable { public Task<CommittedOffsets> CommitAsync(); } } 我猜你想说下一个消费电话 是的,它是安全的,没有问题。 我还将为提交添加一些时间窗口(例如,在5s到100msgs之间的时间窗口),这样,如果您
namespace Confluent.Kafka
{
public class Consumer<TKey, TValue> : IDisposable
{
public Task<CommittedOffsets> CommitAsync();
}
}
我猜你想说下一个消费电话 是的,它是安全的,没有问题。 我还将为提交添加一些时间窗口(例如,在5s到100msgs之间的时间窗口),这样,如果您有一段时间没有收到消息,您仍然可以提交它们
using (var consumer = new Confluent.Kafka.Consumer<MessageKey, byte[]>(config, new MessageKeyDeserializer(), new ByteArrayDeserializer()))
{
consumer.Subscribe(topics);
while (true)
{
Message<MessageKey, byte[]> msg;
if (consumer.Consume(out msg, TimeSpan.FromSeconds(1)))
{
// ...
if( msg.Offset % 100 == 0)
{
consumer.CommitAsync().ContinueWith((t) =>
{
// log t.Exception
}, TaskContinuationOptions.OnlyOnFaulted);
}
}
}
}