选择 Pub/Sub 或 Pub/Sub 精简版

本页面提供的详细信息可帮助您在 Pub/Sub 和 Pub/Sub Lite 之间进行选择。Pub/Sub 和 Pub/Sub Lite 是异步消息传递服务。如需详细了解发布-订阅消息传递,请参阅 Pub/Sub 概览

Pub/Sub 是一项全托管式高可用性服务,可跨多个地区复制消息。Pub/Sub 适用于大多数用例。

为了降低费用,您可以使用 Pub/Sub Lite。Pub/Sub Lite 是适用于具有可预测流量模式的消息传递系统的区域服务。如果您每秒发布 1 MiB-1 GiB 消息,则 Pub/Sub Lite 的价格可能会便宜一个数量级。

如需详细了解 Pub/Sub 和 Pub/Sub Lite 之间的费用差异,请参阅 Pub/Sub Lite 价格

对照表

下表比较了 Pub/Sub 和 Pub/Sub Lite 的主要区别:

功能 发布/订阅 Pub/Sub Lite
信息复制 单个地区中的多个区域 单个地区
容量 自动预配 使用前预配
价格 支付您使用的容量 支付您预配的容量
存储 无限制 每个精简版主题 30 GiB-10 TiB
保留期限 最长 7 天 无限制
Service 端点 全球和地区 地区
资源命名空间 全球 地区
信息路由 全球 地区

发布/订阅

在 Pub/Sub 系统中,发布者应用向主题发送消息,订阅者应用从订阅接收消息。因为主题和订阅是全球资源,所以它们可以位于不同的 Cloud 项目中。

如果主题和订阅位于不同的项目中,则具有不同的配额,并且发布者和订阅者会独立计费。如需了解详情,请参阅 Pub/Sub 价格

Pub/Sub 自动扩缩。任意数量的发布者和订阅者可以发送和接收任意数量的消息。Pub/Sub 服务可以将消息存储在任何地区

订阅者可以从 Pub/Sub 请求消息,或者 Pub/Sub 可以发起请求。以下 Google Cloud 产品可以自动验证来自 Pub/Sub 的请求:

  • App Engine
  • 云端函数
  • Cloud Run

流处理流水线

如需在 Apache Beam 流水线中读取或写入消息,您可以使用 Dataflow 流处理模板或 Apache Beam SDK 的 Pub/Sub I/O。适用于 Java 的 Apache Beam SDK适用于 Python 的 Apache Beam SDK中提供了 Pub/Sub I/O。

Pub/Sub Lite

在 Pub/Sub Lite 系统中,发布者向精简版主题发送消息,订阅者从精简版订阅接收消息。精简版主题和精简版订阅必须是位于同一 Cloud 项目和区域中的区域资源。如需查看 Pub/Sub Lite 支持的区域列表,请参阅 Pub/Sub Lite 位置

精简版主题由多个分区组成;一个分区是消息的日志。发布者将每条消息分配给分区,Pub/Sub Lite 服务会将每条消息附加到日志中。Pub/Sub Lite 服务会按顺序从分区传送消息。

订阅者必须向 Pub/Sub Lite 发送消息。为了请求消息,订阅者需要为每个分区建立双向串流连接。

您可以手动预配以下功能:将消息发布到精简版主题,接收来自精简版主题的消息,以及在精简版主题中存储消息。创建精简版主题时,请指定分区数和每个分区的存储空间。要增加精简版主题的容量,您可以扩缩分区的容量。

流处理流水线

如需读取或写入 Apache Beam 流水线中的消息,您可以使用 Apache Beam SDK 的 Apache Pub/Sub Lite I/O。Pub/Sub Lite I/O 包含在 Java 客户端库中。您可以将适用于 Java 的 Apache Beam SDK 和 Pub/Sub Lite I/O 一起使用。