Google Cloud Pub/Sub多订阅及Cloud Functions触发逻辑咨询
Google Cloud Pub/Sub 配置逻辑问题解答
1. 同一消息是否会投递至CF1、CF2、S1和S2?
是的。每个通过Pub/Sub触发的Cloud Function(CF1、CF2),后台都会自动创建专属的Pub/Sub订阅,和你手动创建的S1、S2属于同一层级的订阅资源。当XYZ Topic发布消息时,这条消息会推送到该Topic下的所有订阅(包括CF1、CF2对应的自动订阅,以及S1、S2),所以CF1、CF2、S1、S2都会收到同一消息。
2. 消息何时会从Topic中删除?
首先明确:Pub/Sub的Topic本身并不存储消息,消息实际存在各个订阅的「未确认消息队列」中。对Topic而言,消息成功分发给所有订阅的队列后,就完成了它在Topic层面的使命。
每个订阅的消息生命周期是独立的:当某订阅收到消息后,若在「确认超时时间」内收到ACK(确认),或者消息超过订阅设置的「消息保留期」(最长7天)未被处理,这条消息就会从该订阅的队列中被清理。
3. 是否需要所有资源(CF1、CF2、S1、S2)都确认(ACK)消息?
不需要。每个订阅(包括CF1、CF2对应的自动订阅,以及S1、S2)的消息确认完全独立:
- CF1完成ACK,只会清除CF1对应订阅队列里的这条消息,不影响CF2、S1、S2的消息状态;
- 同理,S1未ACK导致消息重推,也不会对其他三个订阅的消息处理产生任何影响。
内容的提问来源于stack exchange,提问作者p.magalhaes
相关产品推荐
相关产品推荐

