我有一个订阅 PubSub 订阅的 Cloud Run FastAPI 应用程序。它将处理突发流量,因此在给定时间可能有 0 个实例,也可能有 20 个实例。
假设我有 10 个容器正在运行并且发布了一条消息。有留言吗
a.) 发送给所有 10 个容器订阅者
b.) 被发送到已知订阅者之一,并假设它得到确认,不会被发送到其他人
c.) 还有别的吗?
根据我对文档的阅读,我相信这是选项 B,但找不到任何明确证实该行为的内容。如果它的行为不像选项 B 那样,有没有办法让它实现?我不关心此用例的消息顺序,只是一条消息不会被多次处理。
如果您只有一个订阅,则选择 B 行为。
一般来说,拥有多个订阅者有两种范例:
负载平衡:目标是通过让多个订阅者使用同一订阅来并行处理负载。在这种情况下,每个订阅者都会收到消息的子集。人们可以通过为同一订阅创建更多订阅者来水平扩展处理。
扇出:目标是让多个订阅者接收整个消息源。这是通过多个订阅来完成的。
这已在 Pub/Sub 服务概述中介绍。