gpt4 book ai didi

c# - Google PubSub 每次拉取的最大消息数

转载 作者:行者123 更新时间:2023-12-02 15:01:39 26 4
gpt4 key购买 nike

我正在编写一个 ASP .NET Core 应用程序,我在其中使用 Google PubSub 模拟器,我可以在其中发布和订阅主题。但是,当我发布 1000 多条“大量”消息时,我想拉取尽可能多的消息。

我使用 Google.Cloud.PubSub.V1 库,它提供 SubscriberServiceApiClient 来与其 API 交互。我使用具有参数 maxMessagesPullAsync 方法异步拉取。根据他们的文档,这决定了每个请求可以提取的最大消息数,但是返回的消息可能更少。如果我提供一个参数指定一个大于 100 的 maxMessages 数字,它不会有什么不同。这意味着我可以从每个请求接收的最大消息数始终为 100,这似乎很少。我还尝试拉取他们的 REST Api,每次拉取也限制为 100 条消息。

我不确定这是由于某些限制还是我做错了什么。我曾尝试在他们的文档和其他地方进行搜索,但没有成功。

最佳答案

一般来说,Google Cloud Pub/Sub 不能向单个 PullAsync 调用返回超过 1,000 条消息。通过模拟器运行时,这可能会更小。 returnImmediately 的值也会影响返回的消息数。如果您想最大化返回的消息数,则需要将 returnImmediately 设置为 false。然而,即使在这种情况下,您也不一定会在每个响应中获得 maxMessages; Cloud Pub/Sub 尝试通过等待时间过长来平衡返回更完整的响应与最小化端到端延迟。<​​/p>

一般来说,为了最大化吞吐量,您需要同时激活多个 PullAsync 调用。然而,更好的是使用 SubscriberClient ,它会在后台为您处理底层请求,并在消息到达时将消息传递给您指定的函数。

关于c# - Google PubSub 每次拉取的最大消息数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059104/

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