Google PubSub每次拉取的最大邮件数

问题描述 投票:0回答:1

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

我使用Google.Cloud.PubSub.V1库,它提供SubscriberServiceApiClient与其API进行交互。我用PullAsync方法异步拉动,该方法有参数maxMessages。根据他们的文档,这决定了每个请求可以提取的最大消息数,但是它可能会返回更少的消息。如果我提供一个指定高于100的maxMessages数的参数,它将没有任何区别。这意味着我可以从每个请求收到的最大消息数总是100,这似乎很低。我也试图通过他们的REST Api,每次拉动也限制为100条消息。

我不确定是由于某种限制还是我做错了什么。我试过在他们的文档和其他地方搜索,但没有运气。

c# google-cloud-pubsub
1个回答
1
投票

通常,Google Cloud Pub / Sub无法向单个PullAsync调用返回超过1,000封邮件。通过仿真器运行时,这可能会更小。 returnImmediately的值也会影响返回的消息数。如果要最大化返回的消息数,那么您需要将returnImmediately设置为false。但是,即使在这种情况下,您也不一定会在每个响应中获得maxMessages; Cloud Pub / Sub尝试平衡返回更全面的响应,并通过等待太长时间来最小化端到端延迟。

通常,为了最大化吞吐量,您需要同时激活多个PullAsync调用。但是,更好的方法是使用SubscriberClient,它为您处理幕后的基础请求,并将消息传递给您指定的函数。

© www.soinside.com 2019 - 2024. All rights reserved.