GCP: выбор региона серверной службы балансировки нагрузки HTTP(S)

Что мы имеем:

  • 3 внутренних сервера с отслеживанием состояния, расположенных в разных регионах.
  • Брокер Mqtt в каждом регионе (с подключенными IoT-устройствами).
  • Пользователи, относящиеся к определенному региону, могут видеть данные IoT.
  • Уникальное имя хоста для каждого сервера.

Что мы хотим:

  • Одно имя хоста для обслуживания всех пользователей
  • Mqtt все еще может подключаться к каждому бэкэнду по уникальному имени хоста
  • Решение, куда перенаправить, должно исходить из пользовательской информации, а не из IP (например, поля в JWT).

Способна ли балансировка нагрузки GCP HTTP(S) на такое, или есть технические ограничения?

Будем очень признательны за любые идеи!

2 ответа

Я думаю, что вы можете добиться максимума с помощью HTTPS Global load balancer (GLB). У вас есть статья, которая может помочь вам в настройке.

Только условие перенаправления кажется сложным. Первоначально маршрут GLB к ближайшему к пользователю региону (таким образом, на основе IP), а затем вы можете настроить липкий параметр, основанный либо на IP, либо на файлах cookie. Я не уверен, что это соответствует твоему последнему требованию. Вы также можете перейти на серверную часть в соответствии с предоставленным URL-адресом. Но не из заявлений JWT.

Если вы хотите, чтобы одно имя хоста обслуживало всех пользователей, для этого можно использовать балансировщик нагрузки HTTP(S). Вот статья, которая дает больше информации о том же 1.

Ваша потребность в перенаправлении на основе информации о пользователе, а не с IP-адреса, может быть достигнута через привязку сеанса:2

Балансировка нагрузки Google Cloud HTTP(S) предлагает два типа привязки сеанса:

  • Сходство IP-адреса клиента 3 отправляет запросы с одного и того же IP-адреса клиента в один и тот же сервер.

  • Сгенерированная привязка cookie 4 устанавливает клиентский cookie при первом запросе, а затем отправляет запросы с этим cookie в тот же сервер.

Когда вы используете привязку сеанса, рекомендуется использовать режим балансировки RATE, а не UTILIZATION.

Другие вопросы по тегам