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

     2023-02-16     28

关键词:

【中文标题】pubsub 订阅者出错:超出最大消息大小【英文标题】:Error in pubsub subscriber: Max message size exceeded 【发布时间】:2017-06-23 18:45:27 【问题描述】:

我正在为我的应用程序使用 Google Cloud Pubsub。 pubsub 主题的订阅者是用 Javascript 编写的,并在 Nodejs 上运行。我正在使用 google 提供的官方 pubsub 客户端。

代码如下:

var topic = gcloud.pubsub(projectId: 'myProjectId').topic('topicName');
var pubsub = gcloud.pubsub(projectId: 'myProjectId');
var sub = pubsub.subscription('subName', topic: topic);
sub.on('error', function(err)  console.error(err); );
sub.on('message', messageHandler);

我的错误处理程序不断被此错误消息触发:

Error: Max message size exceeded

首先,订阅者收到一条非常奇怪的消息。如果消息太大,在发布时应该被拒绝。

更重要的是,我的订阅者似乎在某个时候死了。它会一直处理这些消息,直到出现大约 80 个错误,然后才停止。消息处理程序再也不会被调用。

我该如何解决这个问题?

将 SDK 版本更新为 0.46.1。新的错误信息:

Received message larger than max (10406691 vs. 4194304)

【问题讨论】:

【参考方案1】:

这可能是 Node.js Pub/Sub 客户端库中的一个错误,其中 max_receive_message_length 属性未在 gRPC 通道上设置。在这种情况下,“消息大小”不是指发布到 Pub/Sub 的消息的大小(根据maximum publish request size,最多可达 ~10MB),而是指响应中允许的消息大小发送到 gRPC 中的请求。我建议在Google Cloud Platform Node.js repository 中创建一个问题。

与此同时,您可以尝试将subscription 上的 maxInProgress 属性设置为较小的数字,这将迫使订阅者拉取较小批量的消息,从而使响应变小。目前,如果未指定,单个响应中的最大消息数默认为 1000。但是,如果您的消息很大,这可能无济于事。

【讨论】:

拉谷歌 PubSub 消息时 io.grpc 帧大小超过最大值

】拉谷歌PubSub消息时io.grpc帧大小超过最大值【英文标题】:io.grpcframesizeexceedsmaximumwhenpullgooglePubSubmessage【发布时间】:2017-04-3006:06:57【问题描述】:有人知道在使用GooglePubSub服务时如何增加io.grpcmaxMessageSize吗?现在,当我拉出... 查看详情

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

】GooglePubSub每次拉取的最大消息数【英文标题】:GooglePubSubmaximumnumberofmessagesperpull【发布时间】:2018-08-1001:50:38【问题描述】:我正在编写一个ASP.NETCore应用程序,我在其中使用GooglePubSub模拟器,我可以在其中发布和订阅主题。... 查看详情

Wcf - 已超出传入消息 (65536) 的最大消息大小配额?

】Wcf-已超出传入消息(65536)的最大消息大小配额?【英文标题】:Wcf-Themaximummessagesizequotaforincomingmessages(65536)hasbeenexceeded?【发布时间】:2013-11-0301:10:48【问题描述】:已超出传入邮件的最大邮件大小配额(65536)。要增加配额,请在... 查看详情

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

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

javascript发布订阅pubsub模式

首先使用数组缓存订阅者订阅的消息,当订阅者订阅消息的时候,把订阅的消息push到指定消息的队列中,当发布者发布消息的时候,我们遍历执行push到指定消息队列中的回调事件。varPubsub=(function(){vareventObj={};return{subscribe:functio... 查看详情

[已解决]Pubsub 推送订阅不确认消息

】[已解决]Pubsub推送订阅不确认消息【英文标题】:Pubsubpushsubscriptionnotacknowledgingmessages【发布时间】:2021-03-0502:55:27【问题描述】:这是我的设置。订阅A是一种推送订阅,可将消息发布到云运行部署。该部署公开了一个HTTP端点... 查看详情

订阅者的Spring pubsub过滤消息

】订阅者的Springpubsub过滤消息【英文标题】:SpringpubsubFilterMessagesforsubscriber【发布时间】:2021-12-1914:28:07【问题描述】:我尝试使用pubsub实现请求异步响应模式。我正在通过使用弹簧集成来做到这一点。我在两端定义了一个主题... 查看详情

为啥 PubSub 订阅在保留期到期后向死信主题发布消息

...要在PubSub中跟踪未传递的消息。但是,当PubSubPull订阅的订阅者在保留期后不可 查看详情

超出存储分配。服务器响应是:4.3.1 消息大小超过固定的最大消息大小

】超出存储分配。服务器响应是:4.3.1消息大小超过固定的最大消息大小【英文标题】:Exceededstorageallocation.Theserverresponsewas:4.3.1Messagesizeexceedsfixedmaximummessagesize【发布时间】:2011-08-0222:06:12【问题描述】:我正在使用SMTPclient发送... 查看详情

vue2.0—消息订阅与发布pubsub(二十)

【Vue2.0】—消息订阅与发布pubsub(二十) 查看详情

尝试在 Google PubSub python 中创建主题订阅时出错

】尝试在GooglePubSubpython中创建主题订阅时出错【英文标题】:ErrorintryingtocreateatopicsubscriptioninGooglePubSubpython【发布时间】:2021-03-1701:40:59【问题描述】:我正在尝试在python中使用Google的pubsub_v1库创建对主题的订阅。我已经使用库... 查看详情

Google Cloud PubSub 不确认消息

...9-07-0223:38:09【问题描述】:我们有基于GCPPubSub的发布者和订阅者系统。订阅者处理单个消息的时间很长,大约1分钟。我们已经将订阅者确认截止时间设置为600秒(10分钟)(最长1秒),以确保pubsub不会过早开始重新交付,因为... 查看详情

如何使用 GCP 在 pubsub 模型中一次向所有订阅者发送消息

】如何使用GCP在pubsub模型中一次向所有订阅者发送消息【英文标题】:HowtosendmessagetoallsubscribersatonceinpubsubmodelusingGCP【发布时间】:2021-03-1602:53:30【问题描述】:使用google云平台实现pubsub模型,使用函数创建topic、subscriber、publish... 查看详情

谷歌 PubSub 存在拉式订阅者设计缺陷?

】谷歌PubSub存在拉式订阅者设计缺陷?【英文标题】:GooglePubSubwithpullsubscriberdesignflaw?【发布时间】:2021-06-3000:37:47【问题描述】:我们使用googlessteamingpull订阅者设计如下我们正在做将文件从FE(前端)发送到BE(后端)将该文... 查看详情

如何使用当前的 pubsub 订阅者从 google Pub/Sub 系统获取消息

】如何使用当前的pubsub订阅者从googlePub/Sub系统获取消息【英文标题】:HowtogetmessagesfromgooglesPub/Subsytsembyusingthecurrentpubsubsubsciber【发布时间】:2019-06-0909:09:58【问题描述】:我需要使用基于python的订阅者从googlesPub/Sub系统接收已发... 查看详情

gcloud pubsub 订阅 pull 经常报空消息列表

】gcloudpubsub订阅pull经常报空消息列表【英文标题】:gcloudpubsubsubscriptionspulloftenreportemptymessagelist【发布时间】:2018-11-2310:35:28【问题描述】:为什么“gcloudpubsubsubscriptionspull”经常报空消息列表,而订阅中有消息需要确认?见下... 查看详情

在 PubSub 订阅确认截止日期和重新传递的上下文中,未发送给订阅者的消息是啥意思?

...PubSub订阅确认截止日期和重新传递的上下文中,未发送给订阅者的消息是啥意思?【英文标题】:WhatisthemeaningofmessagesoutstandingtoasubscriberinthecontextofPubSubsubscriptionacknowledgedeadlinesandre-delivery?在PubSub订阅确认截止日期和重新传递的上... 查看详情

react使用pubsub事件订阅,组件间通信

1、PubSub使用方式1.1react导入库npminstallpubsub-js--save1.2react页面引入pubsubjsimportPubSubfrom‘pubsub-js‘1.3pubsubjs使用发送消息:PubSub.publish(名称,参数)订阅消息:PubSub.subscrib(名称,函数)取消订阅:PubSub.unsubscrib(名称) PS:pubs 查看详情