订阅者使用精简版订阅从精简版主题中读取消息。创建精简版订阅时,您可以将其附加到精简版主题。您可以将许多精简版订阅附加到单个精简版主题中。
订阅分为两种类型:
- 标准订阅。如果您有客户端需要从精简版主题中读取消息,请创建标准订阅。
- 导出订阅。当您需要将 Lite 消息导出到 Pub/Sub 时,请创建导出订阅。如需了解详情,请参阅将 Pub/Sub Lite 消息导出到 Pub/Sub。
精简版订阅的属性
区域级精简版主题的订阅与区域级精简版主题的订阅具有相同的属性,但以下属性除外:
资源名称中使用的地理位置类型,可用区或区域。区域位置示例为
us-central1
;可用区位置示例为us-central1-a
。可靠性。如需详细了解地区性主题和可用区主题之间的可靠性差异,请参阅精简版主题中的数据复制。
邮件传送要求
将消息写入存储空间时发生临时失败会导致发布方重新尝试发送消息。这些重试对最终用户是透明的。精简版订阅具有传送要求属性,可更改订阅对这些消息重试的响应方式。您可以将此属性设置为以下两个选项之一:
立即传送消息。启用此选项后,订阅方客户端会在消息到达服务器后接收所有消息。此过程不依赖于写入磁盘的消息的状态。偏移量不会重复使用,但在执行跳转操作后,偏移量未写入存储空间的消息可能无法重新读取。
在存储后传送消息。启用此选项后,订阅者只有在消息写入磁盘后才能收到消息。系统保证这些消息在执行跳转操作后可重新读取。启用此选项会增加从发布端到订阅端接收消息的端到端延迟时间。
订阅命名指南
Pub/Sub Lite 资源名称用于唯一标识 Pub/Sub Lite 资源(例如主题、订阅或预订)。资源名称必须采用以下格式:
projects/project-identifier/collection/ID
project-identifier
:必须是 Google Cloud 控制台中提供的项目 ID 或项目编号。例如,my-cool-project
是项目 ID。123456789123
是项目编号。collection
:必须是topics
、subscriptions
或reservations
中的一个。ID
:必须符合以下准则:- 不以字符串
goog
开头 - 以字母开头
- 包含 3 到 255 个字符
- 仅包含以下字符:字母
[A-Za-z]
、数字[0-9]
、短划线-
、下划线_
、英文句点.
、波形符~
、加号+
和百分号%
您可以在资源名称中使用上述列表中的特殊字符,而无需进行网址编码。不过,在网址中使用任何其他特殊字符时,您必须确保对这些字符正确进行编码或解码。例如,
mi-tópico
是无效的 ID,不过,mi-t%C3%B3pico
是有效的。在进行 REST 调用时,此格式非常重要。- 不以字符串
创建精简版订阅
精简版订阅必须与附加精简版订阅的精简版主题位于同一项目和位置中。
如需创建精简版主题,请参阅创建和管理精简版主题。
如需查看可用位置的列表,请参阅 Pub/Sub 精简版位置。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 创建精简版订阅。
如需了解如何创建导出订阅,请参阅将 Pub/Sub Lite 消息导出到 Pub/Sub。
控制台
前往精简版订阅页面。
点击创建精简版订阅。
输入精简版订阅 ID。
选择要接收消息的精简版主题。
选择立即传送消息或在存储后传送消息。
选择起始偏移类型。
选择传送类型。
点击创建。
gcloud
如需创建精简版订阅,请使用 gcloud pubsub lite-subscriptions create
命令:
gcloud pubsub lite-subscriptions create SUBSCRIPTION_ID \ --location=LOCATION \ --topic=TOPIC_ID \ --delivery-requirement=DELIVERY_REQUIREMENT
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:Pub/Sub 精简版支持的位置的名称
TOPIC_ID:要附加到精简版订阅的精简版主题的 ID
DELIVERY_REQUIREMENT:
deliver-after-stored
或deliver-immediately
如果请求成功,命令行会显示一条确认消息:
Created [SUBSCRIPTION_ID].
协议
要创建精简版订阅,请发送 POST
请求,如下所示:
POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:要在其中创建精简版订阅的项目的项目编号
LOCATION:Pub/Sub 精简版支持的位置的名称
SUBSCRIPTION_ID:精简版订阅的 ID
在请求正文中指定以下字段:
{ "topic": projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID, "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
将 DELIVERY_REQUIREMENT 替换为 deliver-after-stored
或 deliver-immediately
。
如果请求成功,则响应是 JSON 格式的精简版订阅:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
创建精简版订阅后,您可以从精简版订阅接收消息。
更新精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 更新精简版订阅。
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击修改。
gcloud
要更新精简版订阅,请使用 gcloud pubsub lite-subscriptions update
命令:
gcloud pubsub lite-subscriptions update SUBSCRIPTION_ID \ --location=LOCATION \ --delivery-requirement=DELIVERY_REQUIREMENT
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
DELIVERY_REQUIREMENT:
deliver-after-stored
或deliver-immediately
如果请求成功,命令行将显示精简版订阅:
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
要更新精简版订阅,请发送 PATCH
请求,如下所示:
PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID?updateMask=deliveryConfig.deliveryRequirement Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
在请求正文中指定以下字段:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
将 DELIVERY_REQUIREMENT 替换为 deliver-after-stored
或 deliver-immediately
。
如果请求成功,则响应是 JSON 格式的精简版订阅:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
查看精简版订阅详情
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 获取有关精简版订阅的详细信息。
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击详细信息标签页。
gcloud
要获取有关精简版订阅的详细信息,请使用 gcloud pubsub lite-subscriptions describe
命令:
gcloud pubsub lite-subscriptions describe SUBSCRIPTION_ID \ --location=LOCATION
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
如果请求成功,命令行将显示精简版主题:
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
如需获取有关精简版订阅的详细信息,请发送 GET
请求,如下所示:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
如果请求成功,则响应是 JSON 格式的精简版主题:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
列出精简版订阅
您可以列出项目中的精简订阅或精简版主题的精简版订阅。
列出项目中的精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 列出项目中的精简版订阅。
控制台
前往精简版订阅页面。
gcloud
- 如需列出项目中的精简版订阅,请使用
gcloud pubsub lite-subscriptions list
命令:
gcloud pubsub lite-subscriptions list \ --location=LOCATION
将 LOCATION 替换为精简版订阅的位置名称。
如果请求成功,命令行将显示精简版订阅:
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
- 如需列出项目中的精简版订阅,请发送
GET
请求,如下所示:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
如果请求成功,则响应是 JSON 格式的精简版主题:
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
列出精简版主题的精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 列出精简版订阅。
控制台
前往精简版主题页面。
选择精简版主题 ID。
在精简版主题详情页面中,精简版订阅部分包含精简版主题的一系列订阅。
gcloud
- 如需列出主题的精简版订阅,请使用
gcloud pubsub lite-topics list-subscriptions
命令:
gcloud pubsub lite-topics list-subscriptions TOPIC_ID \ --location=LOCATION
替换以下内容:
TOPIC_ID:附加精简版订阅的精简版主题的 ID
LOCATION:精简版订阅所在的位置名称
如果请求成功,命令行将显示精简版订阅:
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
- 要列出精简版主题的精简版订阅,请按如下所示发送
GET
请求:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/lite-topics/TOPIC_ID/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
TOPIC_ID:附加精简版订阅的精简版主题的 ID
如果请求成功,则响应是以 JSON 格式列出的精简版订阅列表:
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
删除精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 删除精简版订阅。
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击删除。
在显示的对话框中,点击删除以确认您要删除精简版订阅。
gcloud
要删除精简版订阅,请使用 gcloud pubsub lite-subscriptions delete
命令:
运行
delete
命令:gcloud pubsub lite-subscriptions delete SUBSCRIPTION_ID \ --location=LOCATION
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
如需确认,请输入
Y
。
如果请求成功,命令行会显示一条确认消息:
Deleted subscription [SUBSCRIPTION_ID].
协议
- 要删除精简版主题,请发送
DELETE
请求,如下所示:
DELETE https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
如果请求成功,响应将为空的 JSON 对象。
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
后续步骤
- 创建和管理精简版主题。
- 向精简版主题发布消息。
- 接收精简版订阅的消息。