PubSub REST 订阅拉取未返回所有消息

2023-12-05

我们使用要拉取的 REST 服务 API来自 PubSub 订阅的消息。准备好接受服务的消息被确认,而其他消息则在稍后的执行周期中未被确认而需要接受服务。

在执行周期中,我们发送一个single请求给pull服务 REST API with returnImmediately=true and maxMessages=100.

在测试时,我们遇到了每个执行周期仅返回 3 条“旧”消息的情况。新发布的消息从未包含在请求中pull。我们通过监控 Stackdriver 监控中的未送达消息来验证新消息是否已成功到达订阅。

  • 是否pullREST API 不包括所有未发送的消息?
  • 它是否忽略了maxMessages范围?
  • 应如何使用 REST API 读取所有消息(最多指定的最大值)?

Notes:

我们通过向 2 个并行请求发送来解决这个问题pullAPI 并合并结果。我们找到了讨论的解决方法(需要并行请求)here.

2018 年 2 月 22 日更新

I wrote 我们博客上的一篇文章这解释了为什么我们强制使用 PubSub 服务 REST API。


单个pull调用不一定会返回所有未传递的消息,特别是当returnImmediately设置为 true。这pull承诺最多返回maxMessages,并不意味着它总是会返回maxMessages如果有那么多可用消息。

The pullAPI 尝试在返回更多消息与保持较低的端到端延迟之间取得平衡。它宁愿快速返回几条消息,也不愿等待很长时间才返回更多消息。需要从存储或其他服务器检索消息,因此有时无法立即传递所有这些消息。随后的pull然后,请求将接收稍后检索的其他消息。

如果您想最大限度地提高接收更多消息的机会pull请求、设置returnImmediately为假。这仍然不能保证消息全部在一个单一的pull请求,即使maxMessages大于尚未传递的消息数。您仍然应该发送后续的pull请求(或者更理想的是,几个pull同时请求)检索所有消息。

或者,您应该考虑切换到Google Cloud Pub/Sub 客户端库,它在幕后处理所有这些,并在消息可用时立即将消息传递到您指定的回调。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PubSub REST 订阅拉取未返回所有消息 的相关文章

随机推荐

  • 我的网页忽略 CSS 文件中的更改

    无论我在 css 文件中进行什么更改 页面都保持不变 而且 无论是更改链接标记以使其指向另一个 css 文件还是完全删除它都没有什么区别 应用 html 代码中的其他更改 网页的源代码显示了应有的一切 当我将链接标签从前一个文件重定向到我现
  • Azure 函数无法正常工作“无法在脚本代码中声明命名空间”

    我是一名 Java 微服务人员 对 NET 不太感兴趣 在 StackOverflow 社区的帮助下 我能够为我的问题获得工作代码 该代码在本地完美运行 但是当我尝试将其作为函数移动到 Azure 时 我收到错误 请指导 Code 本地工作
  • 在 R 中按降序排列带有“null”的条形图的条形

    我想创建一个带有降序条形的条形图 在下面的图中 由于 NA 出现在 a1 向量的第二个位置 所以在创建图时它被推到最后 但是 我希望 NA 条仅出现在第二个位置 请在此帮助我 因为我想在不修改数据的情况下实现此目的 library ggpl
  • 由于 PIC,无法从程序集中的 x86-64 对象链接共享库

    我正在将共享库从 32 位移植到 64 位 它由一些导出多个过程的程序集 为 NASM 编写 和一些高级 C 粘合代码组成 我正在使用 NASM 2 10 01 和 GNU ld 2 22 的 64 位 Debian 机器上进行构建 解决了
  • (Quicksight) 如何仅对唯一字段中的值求和

    我的数据集有一个 Invoice No 字段 我想对其成本进行求和 所有发票号码都是唯一的并且具有one成本价值 但是 由于每个 Invoice No 中有多个 Part No 字段 Quicksight 会将这一成本乘以每张发票中的零件编
  • 通过 JavaScript 隐藏来自 Google 的链接

    我们有一些想要向 Google 隐藏的链接 使用 Javascript 来 隐藏 链接 但让它为真正的客户工作 SEO 机构告诉我 最好的方法是对链接进行 Base64 编码并通过 javascript 调用它 a href Link a
  • 可以对两个可能的表之一创建 MySQL 外键吗?

    好吧 这是我的问题 我有三张桌子 地区 国家 州 国家可以在区域内 州也可以在区域内 区域是食物链的顶端 现在我添加一个包含两列的popular areas 表 region id 和popular place id 是否可以使popula
  • 通过相机使用动态坐标捕获图像

    我正在制作一个基于相机的应用程序 我在相机上放置了一个矩形视图 当我使用捕获图像时new Camera PictureCallback 我裁剪了该图像 以便它将获得矩形的一部分 嗯 它工作正常 现在我实施了View OnTouchListe
  • Laravel - 三个模型的数据透视表 - 如何插入相关模型?

    我有三个具有多对多关系的模型 User Activity Product 桌子看起来像id name 每个模型中都有函数 例如在用户模型中 public function activities return this gt belongsT
  • 使用 fetch 进行 WebAudio 流式传输:DOMException:无法解码音频数据

    我正在尝试使用 Chrome 51 播放来自 fetch API 的无限流 网络摄像头音频流为 Microsoft PCM 16 位 单声道 11025 Hz 该代码对于 mp3 文件几乎可以正常工作 除了一些小故障 但它对于 wav 文件
  • Java Set 获取重复条目

    JavaDoc 将集合定义为 不包含重复元素的集合 更正式地说 设置 不包含使得 e1 equals e2 的元素对 e1 和 e2 为了验证这一点 我创建了一个非常简单的程序 import java util HashSet public
  • 使用 CCHmac() 生成 HMAC swift sdk8.3

    在 SDK8 3 之前 我是通过这种方式生成 hmac 的 现在我在 CCHmac 函数上遇到错误 由于我是初学者 我不知道如何解决它 在此先感谢您的帮助 xcode 警告 无法使用类型为 UInt32 CChar UInt CChar U
  • 从 OBJ 文件导入时如何在 glTexCoordPointer 中设置/计算纹理缓冲区

    我正在 Android 中解析 OBJ 文件 我的目标是渲染和显示该对象 除了正确的纹理映射之外 一切都工作正常 将资源 图像导入 opengl 等工作正常 我不知道如何将 obj 文件中的纹理相关数据填充到纹理缓冲区对象中 在 OBJ 文
  • 如何读取无符号整型的特定位

    我有一个 uint8 t 我需要读 写特定位 我将如何去做这件事 具体来说 我的意思是 我需要写入一个值的前 7 位 然后读取另一个值的最后一位 编辑 忘记指定 我将把它们设置为大端 您正在寻找位掩码 学习如何使用 C 的按位运算符 等等都
  • 在 Windows 上规范化路径时,Java 是否需要支持 ERROR_NO_MORE_FILES?

    问题 一些用 Java 实现的守护进程在 Windows 7 上运行 将文件从一个目录复制到另一个目录 而源目录和目标目录都是 Windows Server 2016 托管的网络共享 复制是使用 Apache Commons IO 完成的
  • 对于非 ASCII 字符串,UrlHelper.IsLocalUrl 方法始终返回“false”

    我最近发现 UrlHelper IsLocalUrl方法总是返回false 如果它检测到非 ASCII 字符url范围 Example var isLocal UrlHelper IsLocalUrl false 这是一个错误 还是 设计使
  • 什么是“运行时”?

    我听说过 C Runtime Visual C 2008 Runtime NET Common Language Runtime 等 什么是 runtime 确切地 它是什么做的 它如何与我的代码交互 或者更准确地说 它是如何控制我的代码的
  • 如何在catch中打印错误

    catch let error as LocksmithError print error it would print the case of the error 但是如果我这样做 catch LocksmithError Duplica
  • 如何更改表格的字体大小

    我正在画一张桌子matplotlib axes Axes table像这样 sub axes table cellText table vals colWidths 0 15 0 25 rowLabels row labels loc ri
  • PubSub REST 订阅拉取未返回所有消息

    我们使用要拉取的 REST 服务 API来自 PubSub 订阅的消息 准备好接受服务的消息被确认 而其他消息则在稍后的执行周期中未被确认而需要接受服务 在执行周期中 我们发送一个single请求给pull服务 REST API with