选择 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 中,您可以选择可用区级或区域级精简版主题。区域级精简版主题提供的可用性 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 Lite 主题将数据复制到一个区域内的两个可用区。可用区级 Pub/Sub Lite 主题将数据存储在一个区域内的单个可用区中。如需详细了解 Pub/Sub Lite 数据复制,请参阅 精简版主题中的数据复制

消息路由

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

Pub/Sub 在全球范围内路由消息 。托管在任何区域中的应用都可以将消息发布到单个主题。这些消息在组织政策允许的最近区域内处理并转发给订阅者,无论来源为何。

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

资源命名空间

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

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

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

如需查看 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 精简版,请尝试学习以下教程: