Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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
.net 合流kafka dotnet-异步提交_.net_Apache Kafka_Confluent Platform - Fatal编程技术网

.net 合流kafka dotnet-异步提交

.net 合流kafka dotnet-异步提交,.net,apache-kafka,confluent-platform,.net,Apache Kafka,Confluent Platform,我在我的应用程序中使用confluent kafka dotnet,希望控制每条消息的提交,在我的例子中,handle message do some job(异步)和提交消息,我在GitHub中查看confluent kafka dotnet项目中的示例,并注意到在文档中 提交消息同步与同步的速率相比,此速度非常慢 消费者能够消费消息 因此,我在文档中搜索并注意到,在过去,提交消息的是异步方法,但它被更改为仅同步(可以看到推送) 因此,问题是,如果我想控制每条消息的提交,是否还有其他更好的选择

我在我的应用程序中使用confluent kafka dotnet,希望控制每条消息的提交,在我的例子中,handle message do some job(异步)和提交消息,我在GitHub中查看confluent kafka dotnet项目中的示例,并注意到在文档中

提交消息同步与同步的速率相比,此速度非常慢 消费者能够消费消息

因此,我在文档中搜索并注意到,在过去,提交消息的是异步方法,但它被更改为仅同步(可以看到推送)


因此,问题是,如果我想控制每条消息的提交,是否还有其他更好的选择?

在链接到融合kafka dotnet的提交中,您可以注意到以下行:

Task.Run(()=>kafkaHandle.CommitSync(null));
改为:

kafkaHandle.Commit(null);
内部使用的实现
kafkaHandle.CommitSync
实际上没有改变。换句话说,以前的
CommitAsync
与当前的
Commit
方法相比并没有更快。它仅包装在可能在单独的线程中运行commit的
Task.Run()

在单独的线程中运行
CommitAsync
并不能加快速度,它只允许并行运行(不会阻塞应用程序的主线程)。所以,您可以继续在主线程中使用来自Kafka的消息,并在后台线程中执行提交。由于他们删除了
CommitAsync
,您可以为
Commit
方法创建自己的异步包装器,只需将其包装在
Task.Run()
中,然后根据应用程序的需要执行线程同步

但您需要考虑这是否会对您有利,是否能够满足您描述的要求:

要控制每个消息的提交吗

“控制”是指您需要确保在继续并使用下一条消息之前进行提交吗?如果是这样,那么并行性可能不是您的场景的解决方案