首页 > 解决方案 > 多个订阅者的 GCP Pub/Sub 确认

问题描述

背景

我在 GCP pub/sub 上有一个有 2 个订阅者的发布者,两个订阅者都运行 NodeJS 代码并在流程完成后确认。

问题:

  1. 我怎么知道哪个订阅者已经确认了消息?
  2. 假设我只有 1 个订阅者,并且我一次发送了 10 条消息(并行)并且 2 条失败了,我怎么知道哪 2 条消息失败了?ackId 和 GCP 发布/订阅上发送的消息之间是否有任何映射?

标签: google-cloud-platformpublish-subscribe

解决方案


订阅者收到消息时发送的确认与 Cloud Pub/Sub 保存消息并使其可供订阅者使用时发送给发布者的确认是分开的。这是设计使然,Pub/Sub 希望消息的发送者与消息的接收者分离。

当发布消息失败时,它会自动重试,除非该错误不需要重试。Nodejs 客户端库支持自定义重试设置,文档提供了一个示例来了解哪些消息已发布。


推荐阅读