ECS Fargate + проверка балансировки сетевой нагрузки - PullRequest
0 голосов
/ 05 апреля 2019

У меня проблема со следующей настройкой:

Шлюз API -> VPC Link -> Частный NLB -> Целевая группа -> AWS ECS Fargate

Если я настрою проверку работоспособности NLB на TCP / HTTP на указанной конечной точке, эта конечная точка будет забита до смерти внутренним запросом (через API-шлюз запросы не поступают, я проверил): Relevant picture, note the delay between Health Checks

Моя проблема с этим поведением, за исключением того, что конечная точка работоспособности подвергается спаму в моей собственной архитектуре, заключается в том, что страдает функциональность приложения (я продолжаю получать медленные ответы, 1 из 4 получает запрос к API).

Я пытался изменить поведение проверки работоспособности только на TCP, такие же медленные ответы.

Я попытался временно переключиться на общедоступный ALB, я выполняю двойные проверки работоспособности, разделенные на 30 секунд, но мое приложение отвечает в среднем за 100 мс.

Итак, в качестве примера того, что я имею в виду под «двойными проверками здоровья»:

Проверка работоспособности 1.1 в 00: 00: 00

Проверка работоспособности 2.1 в 00:00: 10

Проверка работоспособности 1.2 в 00: 00: 30

Проверка работоспособности 2.2 в 00: 00: 40

Есть идеи?

1 Ответ

0 голосов
/ 19 апреля 2019

TL / DR;

Включить флаг балансировки нагрузки между зонами.

Проблема в том, что «зона перекрестной доступности» не проверена. Кажется, что когда запрос обрабатывается NLB-узлом, который находится в другом AZ, чем тот, который он пытается перенаправить, он пытается внутренне разрешить IP в AZ, если он терпит неудачу, он перенаправляет запрос на другой NLB-узел в соответствующем AZ, который сможет это сделать, следовательно достигнув цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...