为订阅配置消息保留

本页面介绍了 Pub/Sub 订阅如何保留已发布的消息,以及如何配置此行为。 您可能会因以下原因更改默认设置:

  • 调整未确认的消息在被删除之前对订阅保持可用的时长。
  • 启用重放先前确认的消息。

概览

创建订阅后,Pub/Sub 会开始代表订阅保留已发布的消息。默认情况下,Pub/Sub 会在消息获得确认后立即从订阅中舍弃该消息,并将未确认的消息保留 7 天。

您可以在创建或更新订阅时设置保留时长。 最短保留时长为 10 分钟,最长为 31 天。

您还可以启用订阅以保留已确认的消息,保留时长最长为配置的保留时长。 保留已确认的消息可让您在保留期内重放先前确认的消息。如需详细了解如何重放消息,请参阅 使用 seek 重放和完全清除消息

如果订阅配置为保留已确认的消息,则由该订阅保留的已确认消息的存储费用将计入订阅的项目。

如果您还对订阅的主题启用了消息保留功能,则只有在消息的存在时间超过订阅保留时长和主题保留时长的上限时,系统才会从订阅中删除该消息。如需了解详情,请参阅 启用主题消息保留

配置消息保留

如需创建保留已确认消息的订阅,请执行以下步骤:

控制台

  1. 在 Cloud de Confiance 控制台中,前往 Pub/Sub 订阅 页面。

    前往“订阅”页面

  2. 点击创建订阅

  3. 订阅 ID 字段中,输入订阅的 ID。

  4. 消息保留时长 部分,选择消息的保留天数、小时数和分钟数。

  5. 选中保留已确认的消息 复选框。

  6. 点击创建订阅

gcloud

使用 gcloud pubsub subscriptions create

gcloud pubsub subscriptions create SUBSCRIPTION_ID \
  --message-retention-duration=5d \
  --retain-acked-messages

SUBSCRIPTION_ID 替换为订阅的 ID。

如果您省略 --message-retention-duration 标志,消息将保留默认时长(7 天)。

如需更新现有订阅的消息保留设置,请执行以下步骤:

控制台

  1. Pub/Sub 订阅 页面选择您的订阅。

    转到“订阅”页面

  2. 点击订阅详情页面顶部的修改

  3. 消息保留时长 部分,更新消息的保留天数、小时数和分钟数。

  4. 选中或取消选中保留已确认的消息 复选框。

  5. 点击更新 以保存对订阅的更改。

gcloud

使用 gcloud pubsub subscriptions update 命令:

gcloud pubsub subscriptions update SUBSCRIPTION_ID \
  --message-retention-duration=1d \
  --retain-acked-messages

如需停用保留已确认消息的功能,请将 update 命令与 --no-retain-acked-messages 标志结合使用:

gcloud pubsub subscriptions update SUBSCRIPTION_ID \
  --no-retain-acked-messages

后续步骤