Как балансировщик нагрузки Google поддерживает согласованность маршрутизации? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть два облачных экземпляра Google, работающих в разных регионах (Запад и Восток). Каждый экземпляр имеет свою собственную базу данных. Я использую Google Load balancer для маршрутизации трафика на основе IP address клиента (это то, что Google балансировщик нагрузки делает внутренне для балансировки сетевой нагрузки).

Например, Боб запрашивает из восточного региона, а GLB направит запрос только в узел восточного региона. Аналогично, Дейв запрашивает из западного региона, а GLB направит запрос в узел западного региона.

Сценарии: 1. Боб просто зарегистрируется и новая запись будет добавлена ​​в базу данных региона East. 2. Боб пытается получить свой профиль, но каким-то образом запрос перешел в область West (Боб теперь использует VPN), и информация недоступна.

Есть ли способ настроить GLB? Если да, то я могу решить эту проблему, применяя согласование хэширования к балансировщику нагрузки (используя userId в качестве хэш-функции), которое гарантирует, что запрос, поступающий из Bob, всегда будет перемещаться в область East.

1 Ответ

1 голос
/ 10 октября 2019

Вы можете использовать опции HTTP Load Balancer: Session Affinity и Client IP Affinity.

Есть небольшие проблемы с любым методом, внимательно прочитайте документацию. Самая большая проблема для клиентов за NAT (аэропорт, гостиница, Starbucks и т. Д.). Их общедоступный IP-адрес одинаков для всех клиентов за NAT, поэтому весь трафик будет передаваться в один и тот же бэкэнд для соответствия клиенту на основе IP. Я рекомендую использовать куки-файлы.

Сходство с сессией использует IP-адрес клиента или сгенерированный куки-файл для принятия решений о трафике. Это может сохранить трафик, перенаправленный на один и тот же бэкэнд.

Session Affinity

Client IP affinity перенаправляет запросы с одного IP-адреса клиента на один и тот жеэкземпляр бэкэнда, основанный на хэше IP-адреса клиента.

Использование соответствия IP-адреса клиента

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