选择 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 主题。区域性 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 精简版会在区域或可用区内路由消息。订阅方必须连接到 主题的位置。因此,发布者和订阅者必须维护网络 从而实现与同一区域的通信发布商可以将数据发布到 来自任何位置的任何主题,但这可能需要连接到远程区域, 增加网络延迟如果订阅者需要将汇总数据发布到不同位置的主题,则必须连接到每个相关的本地服务实例才能读取消息。

资源命名空间

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

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

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

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

容量管理

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

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

分发模式

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

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

最大并行数量

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

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

流处理流水线

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

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