2016-03-07 4 views
2

Мы внедрили все устройства в нашей системе, имея более одного экземпляра из них, зарегистрированного в реестре службы eureka.Масштабирование прокси-сервера zuul

Кроме того, они также проксируются сервером zuul спереди.

Мой вопрос в том, как мы можем обеспечить масштабируемость прокси-сервера zuul при доступе от клиентов.

Одно решение, о котором я могу думать, - это наличие нескольких экземпляров прокси-сервера, зарегистрированного в реестре eureka. Но если это будет сделано, как мы решаем, какой из экземпляров будет выставлен клиентам.

+0

В какой-то момент вам понадобится балансировщик нагрузки, такой как BigIP или даже веб-серверы - довольно легко настроить балансировку нагрузки в nginx. – freakman

ответ

2

Мы столкнулись с одной и той же проблемой в нашем приложении, имеющей несколько экземпляров нескольких типов приложений типа микросервиса на нашем сервере. Все серверы зарегистрированы в Eureka. Проблема в том, что у нас также было настроено несколько шлюзов безопасности (на основе архитектуры, описанной в этом превосходном учебнике: https://spring.io/guides/tutorials/spring-security-and-angular-js/).

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

Мы используем Redis с аннотацией @EnableHttpRedisSession, чтобы провести весеннюю сессию на всех серверах, поэтому для балансировки нагрузки HTTP не нужно иметь дело с липкими сеансами или соображениями, связанными с состоянием. Он просто выполняет циклический доступ ко всем шлюзам безопасности. Не имеет значения, попадает ли на балансировщик нагрузки SG1, SG2 или SG3, все они используют одну и ту же информацию о сеансе, поступающую от Redis (которая также настроена для отказа с Redis Sentinel).

Смежные вопросы