从 Pub/Sub Lite 迁移到 Pub/Sub

本文档介绍了如何将 Pub/Sub Lite 应用和数据从 Pub/Sub Lite 迁移到 Pub/Sub。

如需迁移到 Pub/Sub,请使用 Pub/Sub Lite 导出订阅功能。导出订阅功能使用一种称为导出订阅的订阅类型,将消息从 Pub/Sub Lite 转换为 Pub/Sub 消息。

Pub/Sub Lite 与 Pub/Sub 之间的区别

Pub/Sub 和 Pub/Sub Lite 都是可横向伸缩消息传递服务,但每项服务在工作原理上存在关键区别。如需详细了解这些差异,请参阅选择 Pub/Sub 或 Pub/Sub Lite

以下部分概述了每项服务之间在服务之间迁移时的一些主要区别。其中包括以下注意事项:

  • 数据存放区域和复制
  • 分发模式
  • 并行处理和排序
  • 重放和完全清除
  • 容量管理和价格

数据存放区域和复制

  • Pub/Sub Lite。区域级 Pub/Sub 精简版主题将数据复制到同一区域内的次要区域。可用区级 Pub/Sub Lite 主题将数据存储在单个可用区中,无需复制。

  • Pub/Sub。Pub/Sub 会跨一个区域内的三个可用区复制数据。

关键迁移点

您有必要了解每项服务复制数据的方式不同。

使用 Pub/Sub 时,您可以使用 Pub/Sub 消息存储政策确保您的数据存储在首选区域中。

  • Pub/Sub 不提供对存储消息的特定可用区的控制。相反,它始终根据消息存储政策的规定跨区域内的三个区域复制数据。

  • 如果您未指定消息存储政策,Pub/Sub 会根据您的资源位置限制组织政策自动确定消息的存储位置。如果您未明确设置组织政策,Pub/Sub 将允许所有区域并自动选择一个区域来存储消息。

分发模式

关键迁移点

如果要在 Pub/Sub 中复制 Pub/Sub Lite 行为(例如,低延迟和高效率),请使用 StreamingPull API 实现使用方客户端。或者,您可以使用其他可用的传送模式(例如推送传送)实现 Pub/Sub 订阅。

并行处理和排序

  • Pub/Sub Lite。Pub/Sub Lite 支持每个分区的并行处理。

  • Pub/Sub。Pub/Sub 支持每条消息的并行处理。

关键迁移点

Pub/Sub 不是基于分区的解决方案。Pub/Sub 消息也可以并发处理,这意味着消息顺序没有保证。如果您的应用需要消息排序,请使用 Pub/Sub 排序键

在 Pub/Sub Lite 中使用导出订阅时,Pub/Sub Lite 键将用作 Pub/Sub 消息中的排序键。这样可确保邮件能继续按顺序递送。

为了确保与 Pub/Sub 消息兼容,请验证您的 Pub/Sub 精简版密钥仅包含 UTF-8 编码字符。

  • Pub/Sub 精简版密钥以字节形式存储。
  • Pub/Sub 排序键存储为字符串。

Pub/Sub 排序键的发布者吞吐量上限为 1 MBps。Pub/Sub 中的消息排序只能在单个区域内进行。如需在 Pub/Sub 中接收有序消息,您必须在订阅设置中明确启用消息排序。

重放和完全清除

  • Pub/Sub Lite。Pub/Sub Lite 支持跳转功能,无需额外配置。

  • Pub/Sub。Pub/Sub 支持跳转功能,但需要额外配置才能进行设置。

关键迁移点

要启用跳转功能,Pub/Sub 会要求您明确配置主题和订阅的设置。

  • 主题:您必须配置消息保留时长
  • 订阅:您必须配置已确认消息保留。

如果您需要与 Pub/Sub Lite 完全等效,或者迁移过程需要重放或完全清除消息,则配置这些设置至关重要。无论您的具体要求如何,查找和重新处理消息的能力都是分阶段迁移期间的重要保护措施。如果发生意外问题,它支持回滚,并最大限度地减少数据丢失。

容量管理和价格

  • Pub/Sub Lite。Pub/Sub Lite 容量是通过使用 Pub/Sub Lite 预留配置存储空间和吞吐量容量来手动预配的。

  • Pub/Sub。Pub/Sub 是一项全代管式服务,可自动扩缩。

关键迁移点

过渡到 Pub/Sub 时,您可以通过设置配额替换值或申请更改 Pub/Sub 资源的配额来管理容量和价格。

管理 Pub/Sub 容量的主要原因是遵循严格的费用要求。如果您没有严格的费用限制,Pub/Sub 无需太多干预即可高效管理资源。Pub/Sub 根据用量计费。如需了解详情,请参阅 Pub/Sub 价格

计划迁移

如需从 Pub/Sub Lite 迁移到 Pub/Sub,您可以使用 Pub/Sub Lite 导出订阅功能。借助导出订阅,您可以分阶段迁移 Pub/Sub Lite 应用。通过采用分阶段方法,您可以迭代更新、测试和监控迁移,从而最大限度地降低出错和停机的风险。

准备工作

  • 评估现有的 Pub/Sub Lite 应用,并筹划出您需要的相应 Pub/Sub 功能。
  • 确保 Pub/Sub 满足您的所有功能和业务要求。

分阶段迁移工作流

以下步骤概述了导出订阅迁移工作流。

  1. 创建相关的 Pub/Sub 主题和该主题的订阅
  2. 创建 Pub/Sub Lite 导出订阅
  3. 同时订阅 Pub/Sub 和 Pub/Sub Lite 订阅。
  4. 逐步更新发布者,以将消息发送到 Pub/Sub 主题,而不是 Pub/Sub 精简版主题。
  5. 验证迁移后的工作负载是否按预期工作。
  6. 关停 Pub/Sub 精简版发布商和订阅者。

迁移阶段

以下部分详细介绍了分阶段迁移工作流中的每个步骤。

创建 Pub/Sub 主题和订阅

创建相应的 Pub/Sub 主题及其订阅。在此阶段,您可以配置所需的主题和订阅设置,例如消息保留、消息确认和消息存储政策。

如果需要,请建立和设置配额,以防止过度使用和意外计费。最重要的是,我们强烈建议您设置死信 Pub/Sub Lite 主题,以捕获所有未成功迁移到 Pub/Sub 的消息。这样,您就可以排查错误、确定导出失败的根本原因,并将失败的消息重新发送到正确的主题,从而确保数据不会丢失。

创建 Pub/Sub Lite 导出订阅

对于每个主题,请创建一个 Pub/Sub Lite 导出订阅,将消息从 Pub/Sub Lite 主题导出到其相应的 Pub/Sub 主题。使用 Pub/Sub Lite 预留来共同高效地管理所有导出订阅的吞吐量,而不是为每个导出订阅单独设置吞吐量容量。到此阶段结束时,Pub/Sub Lite 和 Pub/Sub 主题都会从创建导出订阅开始接收相同的消息。

然后,您可以使用 Pub/Sub 主题分阶段逐步开发和测试您的订阅者客户端。这种方法可最大限度地减少对现有 Pub/Sub Lite 应用的中断。

双订阅 Pub/Sub Lite 和 Pub/Sub 主题

在开发环境中,使用适当的 Pub/Sub 客户端库更新订阅者客户端以直接从 Pub/Sub 主题中读取消息。与 Pub/Sub Lite 不同,Pub/Sub 提供多种服务。与 Pub/Sub Lite 不同,Pub/Sub 提供多种传送模式(拉取和推送),因此请选择最符合应用要求的模式。

  • 如需模拟与 Pub/Sub Lite 相同的行为,请使用 StreamingPull API 配置 Pub/Sub 实例。

  • 在具有多个使用方应用的系统中,逐步逐个迁移每个应用。对于每个订阅者应用,并行运行 Pub/Sub Lite 订阅者和新的 Pub/Sub 订阅者,以便您可以验证新订阅者的行为和性能。密切监控两个订阅者,以确保消息传送的一致性、错误处理和整体功能。成功迁移并验证所有订阅者后,停用旧的 Pub/Sub 精简版订阅者客户端。

更新发布商

在所有订阅者成功使用来自 Pub/Sub 的消息后,您可以逐步更新发布者,以直接向 Pub/Sub 主题发送消息。为此,请更新您的发布者以使用 Pub/Sub 客户端库。这可确保您可以逐步将流量从 Pub/Sub Lite 转移到 Pub/Sub。

停用 Pub/Sub Lite

成功将所有订阅者和发布者迁移到 Pub/Sub 后,您可以关停 Pub/Sub Lite 资源。这有助于避免未使用的基础架构产生不必要的费用。

后续步骤