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, в зависимости от того, какой из них поддерживается типом балансировщика нагрузки.