gpt4 book ai didi

google-cloud-pubsub - Google PubSub 同时发布请求

转载 作者:行者123 更新时间:2023-12-01 13:19:48 30 4
gpt4 key购买 nike

在 Google PubSub 中,可以异步调用来自客户端的发布调用。因此,我认为可以同时触发多个发布请求并将其发送到服务器,尤其是在批处理阈值太低的情况下。

如果这是真的,pubsub 客户端如何控制可以同时创建的发布请求的数量?是否有硬性限制,或者如果创建的请求过多会出现错误?这是拥有异步发布者的预期用途,还是仅仅是为了允许其他非发布事件的发生?

虽然这个问题适用于任何客户端,但我们特别遇到了 C# 客户端的问题,并且间歇性地收到以下错误:

 Grpc.Core.RpcException: Status(StatusCode=DeadlineExceeded, Detail="Deadline Exceeded")
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass0_0`2.<<WithRetry>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---

我的想法是我们发送了太多的发布请求...,但我不确定。

最佳答案

我建议使用原始 gRPC 代码,但使用具有非常薄的包装器的客户端库。

查看客户端源代码总是对我有帮助,您可以在这里找到 c# 代码 PublisherClient.cs (thin wrapper)

如果您使用 PublishAsync,它无论如何都会对消息进行排队/批处理,行为由您提供给客户端的设置控制(请参阅 PublisherServiceApiClient 了解如何调整它)。您还可以控制用于在客户端中发送队列的客户端连接数。我建议先调整批处理大小,然后调整连接数,直到找到吞吐量的最佳点。

关于google-cloud-pubsub - Google PubSub 同时发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50594183/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com