首页 > 解决方案 > Google 应用引擎将流量拆分为单个版本

问题描述

谷歌应用引擎为每个部署创建一个新版本,它通过停止旧版本开始通过新版本提供服务(在逐渐将所有流量迁移到新版本之后)。但有时由于高负载,流量分裂到开始服务的旧版本. 如何自定义 GAE 配置或 app.yaml,以便所有流量只指向最新的一个版本,无论负载如何。

应用程序.yaml

service: service-name
runtime: java
env: flex

runtime_config:
  jdk: openjdk8

handlers:
  - url: /.*
    script: this field is required, but ignored

manual_scaling:
  instances: 1

resources:
  cpu: 1
  memory_gb: 2

network:
  instance_tag: test
  name: dev
  subnetwork_name: dev-1
  session_affinity: true

标签: google-app-engineapp.yaml

解决方案


实际上,您的应用程序已经这样做了,因为您没有将warmup配置添加到 app.yaml,正如您在本文档中看到的那样。

但是,您的实例仍然有它的限制,当达到限制时,负载均衡器将寻找一个可用于处理请求的实例,这可能是仍在运行的旧实例。

因此,您的问题的解决方案是检查和更改您的实例的负载平衡器配置,但是,正如您在此社区帖子中看到的那样,这只有在您使用 App Engine Flexible 时才有可能,因为在 App Engine Standard 上,这由 Google Cloud 管理,您无法对其进行配置。

如果您使用的是 App Engine Flexible,您可以查看此文档以了解如何将实例组添加到负载均衡器以及如何选择最适合您的应用需求的负载均衡器。

希望这可以帮助。


推荐阅读