确保在第一个订阅者完成拉入 Google pub-sub 主题后触发第二个订阅者

Posted

技术标签:

【中文标题】确保在第一个订阅者完成拉入 Google pub-sub 主题后触发第二个订阅者【英文标题】:Ensure that second subscriber gets triggered after first subscriber has finished pulling in Google pub-sub topic 【发布时间】:2021-01-24 15:07:08 【问题描述】:

我有 2 个订阅者,即同一主题的 SUB1 和 SUB2。两个订阅者都将从 Topic 中提取完全相同的消息。如何确保订阅者 'SUB2' 仅在 SUB1 完成从主题中提取消息后才开始提取消息。 ...我的 PUB-SUB 来自 Google 云平台...

【问题讨论】:

【参考方案1】:

如果消息发布到单个主题并且订阅都在该主题上,那么实际上没有一种好的方法可以确保消息在传递给另一个订阅者之前先传递给一个订阅者。它还打破了作为 pub/sub 范式一部分的解耦,其中发布者不必了解订阅者,订阅者也不必了解彼此。

一个很好的选择是有两个主题。 SUB1 将订阅第一个主题。作为消息处理的一部分,它将消息发布到第二个主题。 SUB2 将订阅第二个主题。因此,您可以保证 SUB2 仅在 SUB1 处理完消息后才处理它。这些类型的管道是 Cloud Pub/Sub 的一个非常典型的用例,其中管道中的每个阶段都负责生成下一阶段使用的消息。

【讨论】:

以上是关于确保在第一个订阅者完成拉入 Google pub-sub 主题后触发第二个订阅者的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud 上使用 Pub/Sub 的主/从模式

无法使用服务帐户订阅 google pub 子主题

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

Google Cloud PubSub 不确认消息

Google Cloud Pub/Sub 获取或创建订阅

Google Pub/Sub 每约 5 条消息仅向一个订阅发送