要接收发布到某个主题的消息,您必须创建对该主题的订阅 主题。仅限创建订阅后发布到主题的消息 可供订阅者客户端使用订阅方客户端接收并 处理发布到主题的消息。一个主题可以有多个订阅,但一个给定订阅属于单个主题。
借助主题保留功能,附加到某个主题的订阅可以回溯并重放之前发布的消息。您可以参阅重放和完全清除消息主题,详细了解此功能。
订阅工作流
在消息发送至订户后,订户必须确认 消息。
如果消息已发出进行传送且订阅者尚未确认 那么该消息就称为未完成
Pub/Sub 会反复尝试传送 尚未确认。不过,Pub/Sub 会尝试不将未处理完的消息传送给同一订阅的任何其他订阅者。
订阅者可以配置有限的时间,这称为
ackDeadline
,用于确认未完成的消息。该时限过后,该消息不再被视为未完成,Pub/Sub 会尝试重新传送该消息。
订阅类型
创建订阅时,您必须指定消息传送类型。Pub/Sub 提供以下类型的订阅:
拉取订阅使用订阅者客户端从以下位置请求消息: Pub/Sub 服务器
推送订阅使用 Pub/Sub 服务器向订阅者应用发起请求来传送消息。
导出订阅可帮助您将邮件直接导出到 Google Cloud 资源。这些订阅包括:
BigQuery 订阅会将数据导出到 BigQuery 表。
Cloud Storage 订阅会将数据导出到 Cloud Storage 存储桶。
如需根据业务需求选择正确的订阅,请参阅 选择订阅类型。您可以更新 消息传送类型 创建订单项
默认订阅属性
默认情况下,Pub/Sub 提供“至少一次”传送, 适用于所有订阅类型的排序保证。另外,如果邮件包含 同一排序键且位于同一区域,那么您可以启用消息 排序。设置消息排序属性后,Pub/Sub 服务会按照接收消息的顺序来传送带有相同排序键的消息。
Pub/Sub 还支持仅传送一次。
一般情况下,Pub/Sub 会将每条消息按顺序传送一次, 以及它的发布日期但有时可能并不按顺序传送消息,或者会将消息传送多次。即使消息的确认请求成功返回,Pub/Sub 也可能会重新传送消息。这个 服务器端重启或客户端 问题。因此,尽管这种情况很少见,但任何消息都可以随时重新提交。
如果要实施多次传送,订阅者需要在处理消息时遵循幂等原则。
订阅到期
默认情况下,订阅会在订阅者无活动 31 天后到期,或者, 订阅没有更新。订阅者活动示例 包括打开连接、主动拉取或成功推送。如果 Pub/Sub 检测到订阅者活动或订阅属性更新,则订阅删除时钟会重启。使用 订阅到期政策, 您可以配置非活跃时长,也可以将订阅设为永久 都没有影响您还可以 手动删除订阅。
虽然您可以创建与已删除的订阅同名的新订阅, 新订阅与旧订阅没有任何关系。即使删除 订阅有许多未确认的消息,使用 相同名称的 状态