Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Kafka消费者承诺线程安全_C#_Apache Kafka_Kafka Consumer Api_Confluent Platform - Fatal编程技术网

C# Kafka消费者承诺线程安全

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之间的时间窗口),这样,如果您

我正在使用dotnet客户端

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);
                        }
                    }
                }
}