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

     2023-02-16     21

关键词:

【中文标题】Google PubSub 每次拉取的最大消息数【英文标题】:Google PubSub maximum number of messages per pull 【发布时间】:2018-08-10 01:50:38 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

一般而言,Google Cloud Pub/Sub 不能向单个 PullAsync 调用返回超过 1000 条消息。通过模拟器运行时,这可能会更小。 returnImmediately 的值也会影响返回的消息数量。如果您想最大化返回的消息数量,那么您需要将returnImmediately 设置为false。但是,即使在这种情况下,您也不一定会在每个响应中得到maxMessages; Cloud Pub/Sub 尝试在返回更完整的响应与通过等待太久来最小化端到端延迟之间取得平衡。

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

【讨论】:

【参考方案2】:

在 2019 年 11 月,消息数量上限仍为 1000 条。Pubsub 不允许一次获取更多消息。如下图所示,我尝试循环拉取消息,一次 1,000 条。在一半的请求中,它获得的消息数量远远少于最大消息量。在 Cloud Function 的最大运行时间 9 分钟内,我设法提取了大约 50,000 条消息。

另一种解决方案是使用 google.cloud.pubsub_v1.SubscriberClient.subscribe() 异步订阅 pubsub 主题。但是,此解决方案更适合长时间运行的进程,您可以将其描述为一种位于服务器上的收集器。

【讨论】:

GCP Pubsub 主题持续时间中存在的消息数

...发布时间】:2020-03-2217:47:23【问题描述】:请帮助我了解Google云Pubsubsubscription/num_undelivered_messages指标与拉取订阅的功能。来自文档:subscription/num_undelivered_messages是 查看详情

Google PubSub Pull 与 Streaming Pull 的区别

】GooglePubSubPull与StreamingPull的区别【英文标题】:GooglePubSubPullvsStreamingPulldifferences【发布时间】:2019-10-0502:05:50【问题描述】:我正在阅读来自Google的documentation关于拉取与流拉取的内容,但不太明白。有人可以向我解释其中的区... 查看详情

Google Cloud PubSub 在异步拉取消息时抛出 504 Deadline Exceeded 错误

】GoogleCloudPubSub在异步拉取消息时抛出504DeadlineExceeded错误【英文标题】:GoogleCloudPubSubthrows504DeadlineExceedederrorwhilelisteningformessagesinasynchronouspull【发布时间】:2020-10-2919:07:17【问题描述】:我有一个订阅PubSub主题并使用异步拉取的... 查看详情

pubsub 订阅者出错:超出最大消息大小

...2017-06-2318:45:27【问题描述】:我正在为我的应用程序使用GoogleCloudPubsub。pubsub主题的订阅者是用Javascript编写的,并在Nodejs上运行。我正在使用google提供的官方pubsub客户端。代码如下:vartopic=gclo 查看详情

您可以使用 Google Pub Sub 批量提取消息吗?

】您可以使用GooglePubSub批量提取消息吗?【英文标题】:CanyoudobatchpullmessageswithGooglePubSub?【发布时间】:2021-11-1020:55:52【问题描述】:尝试优化我们的应用程序,但进行批量拉取。PubSub似乎允许使用不同的客户端节点一次异步拉... 查看详情

Google PubSub 如何在流式拉取消息时处理搜索到的消息

】GooglePubSub如何在流式拉取消息时处理搜索到的消息【英文标题】:GooglePubSubhowtoprocessseekedmessageswhilststreaming-pullmessages【发布时间】:2021-06-1910:13:29【问题描述】:我正在尝试在Python中处理seek(timestamp)返回的消息。我使用流式拉... 查看详情

是否可以在同步拉取 pubsub 时取消确认消息

】是否可以在同步拉取pubsub时取消确认消息【英文标题】:Isitpossibletounacknowledgemessagesinsynchronouspullforpubsub【发布时间】:2021-09-2813:37:55【问题描述】:我正在通过订阅提取pubsub消息,并且需要在处理之前确认这些消息,因为我... 查看详情

pubsub 消息没有被 poller 和 serviceactivator 拉取

】pubsub消息没有被poller和serviceactivator拉取【英文标题】:pubsubmessagesnotbeingpulledwithpollerandserviceactivator【发布时间】:2021-06-0406:14:41【问题描述】:我一直在尝试让pubsub在Spring应用程序中工作。为了启动和运行,我一直在阅读教... 查看详情

PubSub 最大传递尝试次数和死信主题

】PubSub最大传递尝试次数和死信主题【英文标题】:PubSubMaximumdeliveryattempts&Deadlettertopic【发布时间】:2021-07-2420:18:45【问题描述】:5月1日快乐,我正在做一个简单的POC来利用PusSub的死信主题功能。我将订阅配置为在20次最大... 查看详情

从 Google PubSub 中提取消息不起作用 - 权限被拒绝

】从GooglePubSub中提取消息不起作用-权限被拒绝【英文标题】:PullingmessagesfromGooglePubSubnotworking-Permissiondenied【发布时间】:2018-01-2202:40:44【问题描述】:我正在尝试从现有订阅中提取消息,但每次尝试都会收到PERMISSION_DENIED错误... 查看详情

Google PubSub Request 消息即使确认?

】GooglePubSubRequest消息即使确认?【英文标题】:GooglrPubSubRequestmessagesevenifacknowledged?【发布时间】:2021-06-1815:35:39【问题描述】:我正在接收来自我创建的订阅的消息:subscriber=pubsub_v1.SubscriberClient(credentials=credentials)subscriber.create... 查看详情

Pubsub 拉取订阅和并发

...我正在从推送订阅转向拉取订阅,并且我已经阅读了来自Google的关于pubsub并发的文档。他们的示例使用Executor订阅主题。这被配置为具有4个线程,默认为1个拉拔器(因此2个拉拔器将使用8个线程)。当我startAsync时,我认为客户... 查看详情

Google PubSub 排序密钥问题,未启用消息排序

】GooglePubSub排序密钥问题,未启用消息排序【英文标题】:GooglePubSuborderingkeyissue,messageorderingnotenabled【发布时间】:2021-12-0515:12:11【问题描述】:我在将googlecloudpubsub消息发布到启用排序的订阅时遇到问题。我有一个pubsub主题:t... 查看详情

使用 Google Cloud PubSub 不断收到“向 Cloud PubSub 发送测试消息时出错...”

】使用GoogleCloudPubSub不断收到“向CloudPubSub发送测试消息时出错...”【英文标题】:Keepgetting\'ErrorsendingtestmessagetoCloudPubSub...\'withGoogleCloudPubSub【发布时间】:2015-11-1005:14:03【问题描述】:我正在尝试将Google的推送PubSub设置到我的... 查看详情

Pubsub 推送拉取订阅

】Pubsub推送拉取订阅【英文标题】:Pubsubpushtopullsubscriptions【发布时间】:2021-12-0518:49:11【问题描述】:我正在从推送订阅转向拉取订阅。鉴于我有几个正在运行的服务实例,在部署推出期间,推送和拉取都将发挥作用,直到所... 查看详情

通过 Google Cloud Dataflow 将 PubSub 消息插入 BigQuery

】通过GoogleCloudDataflow将PubSub消息插入BigQuery【英文标题】:InsertPubSubmessagesintoBigQuerythroughGoogleCloudDataflow【发布时间】:2015-12-1410:57:58【问题描述】:我想使用GoogleCloudDataflow将来自某个主题的PubSub消息数据插入到BigQuery表中。一... 查看详情

Google Cloud PubSub 不确认消息

】GoogleCloudPubSub不确认消息【英文标题】:GoogleCloudPubSubnotackmessages【发布时间】:2019-07-0223:38:09【问题描述】:我们有基于GCPPubSub的发布者和订阅者系统。订阅者处理单个消息的时间很长,大约1分钟。我们已经将订阅者确认截... 查看详情

获取 Google Cloud PubSub 中单条消息的大小

】获取GoogleCloudPubSub中单条消息的大小【英文标题】:GetthesizeofasinglemessageinGoogleCloudPubSub【发布时间】:2021-05-1806:00:34【问题描述】:我有一个设置,我将消息发布到GoogleCloudPubSub服务。我希望获取我发布到PubSub的每条消息的大... 查看详情