Google Cloud HTTPS сходство сеанса балансировки нагрузки

У меня есть балансировщик нагрузки HTTPS, настроенный с одним бэкэнд-сервисом и двумя группами экземпляров:

Бэкэнд настроен для соответствия сеанса cookie.

Моя транзакция состоит из запроса POST, а затем 6 перенаправлений, что требует соответствия сеанса. В большинстве случаев это работает как ожидалось, но в 10-15% случаев сходство перестает работать во время последовательности перенаправления, что приводит к ошибке приложения на нашей стороне.

Я печатаю значение cookie GCLB на обратном прокси-сервере Apache и вижу, что оно не меняется между запросами, но запрос все еще перенаправляется на другой экземпляр в группе или из другой группы (обратите внимание, что такое же поведение происходит, когда только одна группа с несколькими экземплярами в бэкэнде.)

Все проверки работоспособности пройдены, и во время выполнения не происходит автоматического масштабирования (1 экземпляр на группу).

Что может заставить LB изменять экземпляры бэкэнда, хотя cookie-файл GCLB не отличается?

Спасибо

2 ответа

В документации сказано, что существует три причины потери соответствия сеанса:

  • Группа экземпляров исчерпала емкость, и трафик должен быть направлен в другую зону. В этом случае трафик из существующих сеансов может быть отправлен в новую зону, нарушая сходство. Вы можете уменьшить это, гарантируя, что ваши группы экземпляров имеют достаточную емкость для обработки всех локальных пользователей.
  • Автоматическое масштабирование добавляет или удаляет экземпляры из группы экземпляров. В любом случае серверная служба перераспределяет нагрузку, и цель может двигаться. Вы можете уменьшить это, гарантируя, что минимальное количество экземпляров, обеспечиваемых автоматическим масштабированием, будет достаточным для обработки ожидаемой нагрузки, а затем используется только автоматическое масштабирование для неожиданного увеличения нагрузки.
  • Целевой экземпляр не проходит проверку работоспособности. Сходство теряется, когда сеанс перемещается в исправный экземпляр.

Если количество экземпляров в IG не меняется, и все экземпляры остаются исправными все время, тогда это устраняет второй и третий пункты маркированного списка.

Используете ли вы региональную группу управляемых экземпляров? Если это так, то, кажется, причина в первом пункте.

Вполне возможно, что вы исправляете какую-то ошибку в обработке файлов cookie сеанса; Чтобы устранить эту возможность, вы пробовали другие настройки сродства, чтобы посмотреть, исчезнет ли проблема?

Мы также столкнулись с той же проблемой и пришли к этому вопросу и ответу о переполнении стека. После нескольких дней игры с настройками и конфигурацией снова обратился к google docs. Теперь может быть 4 причины, почему это может произойти. Наша проблема была решена по 4-й причине. Мы перешли с использования на RPS. Специально

Когда режим балансировки UTILIZATION действует для групп экземпляров серверной части, привязка сеансов прерывается из-за изменений в использовании серверной части. Вы можете смягчить это, используя режим балансировки RATE или CONNECTION, в зависимости от того, какой из них поддерживается типом балансировщика нагрузки.