【问题标题】:Google app engine split traffic to single versionGoogle 应用引擎将流量拆分为单个版本
【发布时间】:2020-02-25 03:27:59
【问题描述】:

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

app.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-engine app.yaml


    【解决方案1】:

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

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

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

    如果您使用的是 App Engine Flexible,您可以查看此documentation,了解如何将实例组添加到负载均衡器以及如何最适合您的应用需求的choose a load balancer

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多