Pub/Sub 和 Pub/Sub Lite 是可横向伸缩的代管式消息传递服务。这些服务可以处理大量数据,并满足大量存储要求。Pub/Sub 通常是大多数应用集成和分析使用场景的默认解决方案。 它功能丰富且全代管式。对于符合以下条件的应用,建议使用 Pub/Sub Lite:消息吞吐量更稳定、工作负载可以从基于分区的系统中获得益处,并且费用也是一个重要考虑因素。
Pub/Sub 的特性更加广泛、支持每条消息的并行性、全局路由,以及自动伸缩资源容量。在消息复制方面,Pub/Sub 保证同步复制。
Pub/Sub Lite 是一种基于分区的解决方案,它在运营工作负载、全球可用性和某些功能之间权衡了成本效益。Pub/Sub Lite 要求您手动预留和管理资源容量。在 Pub/Sub Lite 中,您可以选择可用区级或区域级精简版主题。区域级精简版主题提供与 Pub/Sub 主题相同的可用性服务等级协议 (SLA)。
请注意这两种服务在消息复制方面的可靠性差异。Pub/Sub 支持同步数据复制,并使用三个区域。区域级精简版主题将数据复制到次要可用区。可用区级精简版主题仅在一个可用区中复制数据。
业务要求核对清单
以下问题可帮助您选择正确的 Pub/Sub 消息传递服务:
可靠性、极低的运营费用和简化开发是您优先考虑的问题吗?使用 Pub/Sub。
您是否愿意在管理主题容量方面产生一些额外的运营开销、可以应对可用区级服务固有的可用性风险且费用较低?使用可用区级精简版主题。
您是否需要一些针对可用区级故障的保护措施,是否愿意产生额外的操作开销(在主题容量管理方面),并且需要最低的每次吞吐量费用?使用区域级精简版主题。
如需详细了解 Pub/Sub 和 Pub/Sub Lite 之间的费用差异,请参阅pricing页面。
功能对比表
特征 | Pub/Sub | Pub/Sub Lite |
---|---|---|
Access Transparency | 是 | 否 |
容量 | 自动供应 | 使用前供应 |
客户端库语言 | Java、Python、Go、Node.js、C++、C#、PHP、Ruby、SAP、ABAP | Java、Python、Go |
跨项目订阅 | 是 | 否 |
客户管理的加密密钥 | 是 | 否 |
死信主题 | 是 | 否 |
仅传送一次 | 是 | 否 |
集成 | ||
邮件过滤 | 对于消息属性,是 | 否 |
信息复制 | 是 | 否 |
信息路由 | Global | 可用区级或区域级 |
消息架构验证 | 是 | 否 |
单个地区中的多个区域 | 否 | 单个区域内的单个可用区或双可用区 |
订外卖 | 按键排序 | 按分区排序 |
消息确认跟踪 | 每条消息 | 每个分区的游标 |
价格 | 用多少,付多少 | 支付您供应的容量 |
REST 端点 | 是 | 否 |
资源命名空间 | Global | 可用区级或区域级 |
保留期限 | 最长 31 天 | 无限制 |
Service 端点 | 全球和地区 | 区域级 |
存储空间 | 无限制 | 无限制 |
订阅 |
数据复制
Pub/Sub 主题将数据复制到一个区域内的三个可用区。如需详细了解 Pub/Sub 数据复制,请参阅主题中的数据复制。
区域级 Pub/Sub 精简版主题可将数据复制到一个区域内的两个可用区。可用区级 Pub/Sub 精简版主题将数据存储在区域内的单个可用区中。如需详细了解 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 Lite 位置。
容量管理
Pub/Sub 自动扩缩。 系统会自动预配消息发布的容量,因此您可以按任意速率发送和接收消息,最高可达您为项目配置的配额。
Pub/Sub 精简版需要手动预配。您必须配置每个精简版主题的分区数量。您还必须预配存储和吞吐量容量。可以使用精简版预留预配吞吐量容量。
分发模式
Pub/Sub 支持多种消息传送模式。其中包括拉取(传统轮询)、推送 (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 精简版,请尝试学习以下教程: