chemtech
@chemtech
Линуксойд, DevOps

Используете ли вы внутренние балансеры nginx для балансировки запросов между микросервисами?

Добрый день!
Используете ли вы внутренние балансеры nginx для балансировки запросов между микросервисами?

Что я имею ввиду:
внутренние балансеры - сервера с nginx, на которые нет доступа из интернета. Могут использоваться для обработки запросов других сервисов

внешние балансеры - сервера с nginx, на которые есть доступ из интернета. Могут использоваться для обработки запросов других сервисов и внешних клиентов.

5aa4b2434e997048993965.png

Или возможно вы используете другой способ?
Если вам нужно распределять запросы по разным микросервисам - то как вы это делаете?

Правильно понимаю что можно использовать Consul (либо Consul DNS, либо встраивание в приложение информации о Consul)?

По поводу Kubernetes: кроме того что надо приложение переводить в docker как приложение узнает адреса других микросервисов? Приложение должно быть переписано с поддержкой Service Discovery (будем рассматривать вариант что приложение не поддерживает Service Discovery)?

Плюсы и минусы различных вариантов

Как я вижу плюсы и минусы для варианта с внутренними балансировщиками nginx:
Плюсы
- проще начать тем кто не знает о Consul DNS или Service Discovery
- проще обслуживать тем кто не знает о Consul DNS или Service Discovery
Минусы
- Избыток (OverHead) сетевых взаимодействий, т.к. трафик идет через внутренний балансер nginx
- Большая задержка от падения микросервиса до вывода его из конфига nginx
- Либо не вывод упавшего микросервиса

Как я вижу плюсы и минусы для варианта с Consul DNS или Kubernetes:
Минусы
- Если приложение не поддерживает Service Discovery, то нужно добавлять на каждый сервер Consul DNS
- тяжелее начать тем кто не знает о Consul DNS или Service Discovery
- тяжелее обслуживать тем кто не знает о Consul DNS или Service Discovery
Плюсы
- меньше сетевых взаимодействий, т.к. трафик НЕ идет через внутренний балансер nginx
- Минимальная задержка от падения микросервиса до сообщения другим микросервисам что ему не нужно отправлять запросы

Спасибо.
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 1
@chromimon
Внешние Ingress, Traefik, HAProxy, nginx

То, что вы называете внутренними балансерами на это есть уже готовые системы например Kubernetes,
а есть service discovery например Consul

В схеме с service discovery балансировкой занимается клиент, получая от service discovery информацию о доступном сервисе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы