Движок приложения Google разделил трафик c на одну версию - PullRequest
0 голосов
/ 25 февраля 2020

Механизм приложений Google создает новую версию для каждого развертывания и начинает обслуживать новую версию, останавливая более старые версии (после постепенного переноса всех траффиков c в новую версию). Но иногда из-за высокой загрузки траффи c распадается на более старую версию, которая начинает обслуживать. Как настроить конфигурацию GAE или app.yaml так, чтобы все трафик c указывал только на последнюю версию, какой бы ни была загрузка.

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

1 Ответ

0 голосов
/ 25 февраля 2020

На самом деле, ваше приложение уже делает это, поскольку вы не добавили конфигурацию warmup в свой app.yaml, как вы можете видеть в этой документации .

Однако, у вашего экземпляра все еще будут свои ограничения, и когда они будут достигнуты, балансировщик нагрузки будет искать экземпляр, доступный для обработки запросов, который, вероятно, будет более старым экземпляром, который все еще работает.

Итак, решение для Ваша проблема состоит в том, чтобы проверить и изменить конфигурацию балансировщика нагрузки для ваших экземпляров, однако, как вы можете видеть на этом сообщении сообщества , это будет возможно только при использовании App Engine Flexible, поскольку в App Engine Standard это управляется Google Cloud, и вы не можете его настроить.

Если вы используете App Engine Flexible, вы можете проверить эту документацию , чтобы узнать, как добавить группу экземпляров в балансировщик нагрузки, а также как выбрать балансировщик нагрузки , который наилучшим образом соответствует потребностям вашего приложения.

Надеюсь, это поможет.

...