谷歌云发布子多个订阅者具有相同订阅的同一条消息

tar*_*lem 5 event-driven google-cloud-platform google-cloud-pubsub

我正在致力于使用 GCP Pub/Sub 实现事件驱动。

我有一个名为订单的主题,该主题将有一个名为的订阅orderPlacedSubscription我有两个服务想要侦听此订阅的所有消息并执行不同的操作,所以我有 paymentService 和 notificationService, paymentService 将侦听由orderPlacedSubscription并处理付款以及通知服务将侦听相同的消息并发送通知。

我的问题

  • pub-sub 是否支持两个订阅者与一个订阅相关,并且两者都接收消息并分别确认它们?
  • 如果每个订阅者都可以单独确认消息而不影响其他订阅者,那么 google cloud pub-sub 是否支持在一个订阅者失败的情况下对不同订阅者进行重试?

Sak*_*yan 7

是的,一个订阅可以有多个订阅者客户端。

在订阅工作流中,如果订阅者未确认消息,Pub/Sub 将尝试重新传送未完成的消息。在重新传递未完成消息的过程中,Pub/Sub 会阻止并尝试不将未完成消息传递给同一订阅上的任何其他订阅者。一旦未完成的消息被确认,它就可以被传递给其他订阅者。

您可以参考订阅工作流程和本 文档以获取更多信息。

  • 答案是不正确的。请检查“发布/订阅服务的基础知识”部分中的 PubSub 架构。您的场景是有两个订阅者的订阅。这里的消息将仅由一位订阅者处理。https://cloud.google.com/pubsub/architecture 在某些情况下,两个订阅者都会处理该消息。这是因为它们的拉动行为,其中两个订阅者都有一个包含相同消息的缓冲区。/sf/ask/4058864421/ (2认同)