选择 Pub/Sub 或 Pub/Sub Lite

本文档旨在帮助您在 Pub/Sub 和 Pub/Sub Lite 之间进行选择。 本文档要求您熟悉 Pub/Sub 的基本概念,例如 如主题和订阅。如果您刚接触 Pub/Sub,请先阅读什么是 Pub/Sub

Pub/Sub 和 Pub/Sub Lite 都是可横向扩容的代管式消息传递服务。这些服务可以处理大量数据,并支持较大的存储需求。Pub/Sub 通常是 是适用于大多数应用集成和分析用例的默认解决方案。 它功能丰富,并且全代管式。建议使用 Pub/Sub Lite 对于消息传递吞吐量较稳定的应用 基于分区的系统, 是个重大问题

Pub/Sub 提供了更多功能,即按消息并行处理、全局路由和自动扩缩资源容量。在消息复制方面,Pub/Sub 保证同步复制。

Pub/Sub Lite 是一种基于分区的解决方案,可通过牺牲运营工作负载、全球可用性和某些功能来实现经济高效。Pub/Sub Lite 要求您手动预留和管理资源 容量。在 Pub/Sub Lite 中,您可以选择可用区级或区域级 Lite 主题。区域级精简版主题提供与 SLA 相同的可用性 Pub/Sub 主题。

请注意这两项服务在可靠性方面的差异 消息复制功能。Pub/Sub 支持同步数据复制,并使用三个可用区。区域性精简版主题会将数据复制到辅助可用区。可用区级精简版主题仅在一个可用区中复制数据。

业务要求核对清单

以下问题可帮助您选择合适的 Pub/Sub 消息传输服务:

  • 具有可靠性、运营成本极低、易于开发 您的首要任务是什么?使用 Pub/Sub。

  • 您是否愿意在管理主题容量方面承担一些额外的运维开销,是否能应对区域性服务固有的可用性风险,以及是否需要低成本? 使用可用区级精简版主题。

  • 您是否需要针对可用区级故障、 愿意承担额外的运营开销 主题容量的管理工作,并且所需的 吞吐量成本?使用区域级精简版主题。

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

功能对比表

特征 Pub/Sub Pub/Sub Lite
Access Transparency
容量 自动供应 使用前供应
客户端库语言 Java、Python、Go、Node.js、C++、C#、PHP、Ruby、SAP、ABAP Java、Python、Go
跨项目订阅
客户管理的加密密钥
死信主题
仅传送一次
集成
邮件过滤 是(对于消息属性)
信息复制
信息路由 全球 可用区级或区域级
消息架构验证
单个地区中的多个区域 单个区域中的单个可用区或双可用区
有序传送 按键排序 每个分区的排序
消息确认跟踪 每条消息 每个分区游标
价格 用多少,付多少 支付您供应的容量
REST 端点
资源命名空间 全球 可用区级或区域级
保留期限 最长 31 天 无限制
Service 端点 全球和地区 区域
存储 无限制 无限制
订阅

数据复制

Pub/Sub 主题会将数据复制到一个区域内的三个可用区。如需详细了解 Pub/Sub 数据复制,请参阅 主题中的数据复制

区域级 Pub/Sub 精简版主题将数据复制到两个可用区 单个区域内可用区级 Pub/Sub Lite 主题会将数据存储在某个区域内的单个可用区中。如需详细了解 Pub/Sub Lite 数据复制,请参阅 精简版主题中的数据复制

信息路由

Pub/Sub 和 Pub/Sub Lite 都可以从所有区域(甚至 Google Cloud 之外)发布和订阅。

Pub/Sub 在全球范围内路由消息。托管在任何区域中的应用都可以将消息发布到单个主题。消息经过处理 位于组织政策允许的距离最近的区域, 转发给订阅者,而不受来源的影响。

Pub/Sub Lite 在一个区域或可用区内路由消息。 订阅方必须连接到 主题的位置。因此,发布者和订阅者必须维护网络 从而实现与同一区域的通信发布商可以从任何地方向任何主题发布数据,但这可能需要连接到远程区域,从而增加网络延迟时间。如果订阅者需要将汇总数据发布到不同位置的主题,则必须连接到每个相关的本地服务实例才能读取消息。

资源命名空间

Pub/Sub 主题和订阅是全球性资源。Pub/Sub 服务可以将消息存储在主题存储政策允许的任何区域中。此外,主题和对该主题的订阅可以存储在不同的项目中,从而实现精细的结算和访问权限控制。最后,无论用户订阅的是哪个服务 使用哪个服务端点来连接到 Pub/Sub 数据发布者使用的服务端点。

地区性精简版主题和订阅是地区性资源。这些资源必须位于同一 Cloud 项目和区域中。

区域级精简版主题和订阅属于区域级资源。 这些资源必须位于同一 Cloud 项目和区域中。

如需查看 Pub/Sub Lite 支持的区域和可用区列表,请参阅 Pub/Sub Lite 位置

容量管理

Pub/Sub 自动扩缩。 系统会自动预配消息发布的容量,因此您可以按任意速率发送和接收消息,最高可达您为项目配置的配额。

Pub/Sub 精简版需要手动预配。您必须配置每个精简版主题的分区数量。您还必须预配存储和吞吐量容量。可以使用精简版预留预配吞吐量容量。

分发模式

Pub/Sub 支持多种消息传送模式。这些模式包括 Pull(传统轮询)、Push (HTTPS POST)、StreamingPull(双向 RPC,实现最短延迟时间和最高效率)以及通过 HTTP REST 和 gRPC 拉取。

Pub/Sub 精简版仅支持流式传输 gRPC 拉取消息传送。为了请求消息,订阅者需要为每个分区建立双向流式传输连接。

最大并行数量

Pub/Sub 使用按消息并行处理。这样可以针对单个订阅并行处理来自一个或数千个客户端的任意数量的消息。

Pub/Sub 精简版使用基于分区的并行性。 这会强制 客户端在单个客户端上按线性顺序处理每个数据分区 实例。这将客户端实例的最大数量限制为最多分区数量。

流处理流水线

Pub/Sub 和 Pub/Sub 精简版会与 Dataflow 集成,以进行无服务器流处理和数据集成。Pub/Sub 可让 Dataflow 更灵活地扩缩,并支持 Dataflow SQL

如需开始使用 Dataflow 和 Pub/Sub 或 Pub/Sub 精简版,请尝试学习以下教程: