迁移流量

流量迁移在应用服务的多个版本之间切换请求路由,将流量从一个或多个版本转移至单个新版本。

如需了解如何在应用的两个或更多版本之间拆分流量,请参阅流量拆分

准备工作

在将流量配置到某个版本之前,请确保您的用户账号具备所需的权限

逐步迁移流量

在标准环境中,您可以选择立即或逐步将请求路由到目标版本。

默认情况下,预热请求处于停用状态,流量会立即迁移到某个版本。

如果您想要逐步将流量迁移到某个版本,可以选择启用预热请求。如果您立即将流量迁移到没有任何运行实例的新版本,将会在加载请求时遇到延迟时间急剧增加的问题。部署与现有版本同名的新版本会导致立即进行流量迁移。旧版本的所有实例都会立即关停。由于要为新版本加载请求,延迟时间将急剧增加。

如果启用了预热请求,对于位于不同环境中的版本,您必须指定立即迁移流量才能在版本之间迁移流量。

向您的应用添加预热请求

启用预热请求后,系统会在新实例收到任何用户请求之前,先向这些实例发送预热请求,以逐步迁移流量。启用预热请求允许当前接收流量的版本处理用户请求,改善用户响应时间,但是向新版本的流量迁移可以在新实例创建期间有一段较短的缓冲时间。

如果未启用预热请求,系统会在新实例创建完毕之前就向其发送用户请求。由于创建新实例和加载应用代码导致的延迟,用户响应时间可能受到影响。

如需避免延迟并启用预热请求,请在将应用部署到 App Engine 之前,在配置文件中包含 inbound_services 元素。

例如,在将应用部署到 App Engine 之前,请在 app.yaml 文件中添加以下内容:

inbound_services:
- warmup

如需了解启用预热请求的完整详情,请参阅配置预热请求以提高性能

将流量迁移到新版本

控制台

如需在 Google Cloud 控制台中迁移流量,请转到“版本”页面:

转到“版本”页面

  1. 选择所有流量的目标迁移版本。
  2. 点击迁移流量
  3. 可选:如果启用了预热请求,您的流量会逐步迁移。如需立即迁移流量,请在显示高级选项部分下选择相应选项。

gcloud

安装 Google Cloud CLI 后,运行 gcloud app services set-traffic 命令将所有流量迁移到单个版本。例如:

  • 如需立即迁移流量,请运行以下命令:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1
  • 如需逐步迁移流量,请添加可选的 --migrate 标志:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1 --migrate

API

要以编程方式迁移流量,您可以使用 Admin API。如需了解详情,请参阅迁移和拆分流量