PubSub:水平扩展订户转发器

PubSub: horizontally scaling subscriber forwarders

https://cloud.google.com/pubsub/architecture#basic_architecture, We understand how pubsub can relay messages between publisher forwarders and subscriber forwarders and the image at the location https://cloud.google.com/pubsub/images/wp_msg_lifecycle.svg 的文档中可视化此信息。

从提供的所有信息中,我可以了解到,在任何给定时间点,多个发布消息源中未确认的消息可以由订阅者转发器使用,发布消息源的总数取决于发布者转发器.

在需要实时消费数据的场景下,pubsub如何对转发器进行扩容,做到无积压。因为,每个发布者转发器在任何给定时间点都可以连接到单个订阅者转发器,并且由于发布者转发器和订阅者转发器的缩放比例为independent/decoupled,这可能会增加系统中的积压,因为订阅者转发器应该中继多条消息致订阅者。

没有限制发布者转发器只能连接到单个订阅者转发器,即使这是图中显示的示例。云 Pub/Sub 中端到端延迟的限制因素很少是服务本身;这是订户客户的行为。尤其重要的是:

  1. 有足够的用户容量来处理吞吐量。
  2. 以毫秒或秒的数量级快速确认消息。
  3. 避免 nacking 消息,尤其是对于推送订阅,nacks 会导致消息传递率退避。