我正在编写一个ASP .NET Core应用程序,我正在使用Google PubSub模拟器,我可以发布和订阅主题。但是,当我发布一个"大" 1000+的消息量,我想尽可能多的拉。
我使用提供Google.Cloud.PubSub.V1
的{{1}}库与其API进行交互。我使用参数SubscriberServiceApiClient
的{{1}}方法异步拉取。根据他们的文档,这决定了每个请求可以提取的最大消息数,但是它可能会返回更少的消息。如果我提供一个指定PullAsync
数字大于100的参数,那么它就没有区别。这意味着我可以从每个请求收到的最大消息数总是100,这似乎很低。我也试图通过他们的REST Api,每次拉动也限制为100条消息。
我不确定是由于某种限制还是我做错了什么。我试过在他们的文档和其他地方搜索,但没有运气。
答案 0 :(得分:1)
通常,Google Cloud Pub / Sub不能向单个PullAsync
电话返回超过1,000封邮件。通过仿真器运行时,这可能会更小。 returnImmediately
的值也会影响返回的消息数。如果您想最大化返回的邮件数量,那么您需要将returnImmediately
设置为false
。但是,即使在这种情况下,您也不一定会在每个响应中获得maxMessages
; Cloud Pub / Sub尝试通过等待太长时间来平衡返回更全面的响应并最小化端到端延迟。</ p>
通常,要最大化吞吐量,您需要同时激活多个PullAsync
个调用。但是,更好的方法是使用SubscriberClient
,它为您处理幕后的基础请求,并将消息传递给您指定的函数。
答案 1 :(得分:1)