paint-brush
Обратное проксирование — основа архитектуры микросервисовк@infinity
2,655 чтения
2,655 чтения

Обратное проксирование — основа архитектуры микросервисов

к Rishabh Agarwal5m2024/01/17
Read on Terminal Reader
Read this story w/o Javascript

Слишком долго; Читать

Микросервисная архитектура предполагает разбиение сложного приложения на небольшие автономные приложения, чтобы каждое из них можно было масштабировать и обслуживать независимо. В основе микросервисной архитектуры лежит концепция обратного проксирования. Обратный прокси-сервер играет ключевую роль в перенаправлении трафика между различными микросервисами, а также в распределении рабочей нагрузки между несколькими экземплярами микросервиса.
featured image - Обратное проксирование — основа архитектуры микросервисов
Rishabh Agarwal HackerNoon profile picture
0-item

Микросервисная архитектура предполагает разбиение сложного приложения на небольшие автономные приложения, чтобы каждое из них можно было масштабировать и обслуживать независимо . Учитывая множество преимуществ микросервисной архитектуры, неудивительно, что все в ИТ-секторе переходят на эту новую архитектуру!


В основе микросервисной архитектуры лежит концепция обратного проксирования. Обратный прокси-сервер играет ключевую роль в перенаправлении трафика между различными микросервисами, а также в распределении рабочей нагрузки между несколькими экземплярами микросервиса. Без обратного прокси-сервера сложная сеть взаимодействий и распределения нагрузки внутри микросервисной архитектуры, как мы ее понимаем сегодня, была бы просто невозможна!


Давайте углубимся в роль обратного прокси-сервера в настройках микросервисов!

Что такое прокси?

Прокси — это сервер, который находится между компьютером клиента и Интернетом. Любой трафик, исходящий от клиентского компьютера, проходит через прокси-сервер. Для остальной части Интернета создается впечатление, что запросы инициирует прокси-сервер.


Есть несколько причин, по которым можно использовать прокси-сервер. Некоторые из них следующие:

  • Маскировка личности: при использовании прокси настоящая личность клиента не раскрывается в Интернете. Его можно использовать для доступа к контенту, который в противном случае был бы заблокирован/ограничен для клиента.
  • Настройка ограничений. Используя определенные конфигурации, прокси-серверы можно использовать для ограничения доступа клиента к определенному контенту.
  • Это также повышает безопасность

Что такое обратный прокси?

Обратный прокси — это сервер, который находится между Интернетом и внутренними серверами. Любой трафик, предназначенный для серверов, должен проходить через обратный прокси-сервер. Для остальной части Интернета создается впечатление, что запросы обслуживает обратный прокси-сервер.


В целом использование обратных прокси имеет несколько преимуществ. Некоторые из них вы можете найти здесь .


Концепция обратного прокси-сервера вдыхает жизнь в архитектуру микросервисов, позволяя клиенту перемещаться в динамической среде микросервисов, определяя, к каким серверам обращаться. Без этого жизненно важного компонента клиент остался бы без средств для эффективной навигации по сложному ландшафту архитектуры микросервисов.

Сервис Дискавери 🌍

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

Балансировка нагрузки ⚖️

Поскольку у службы может быть запущено несколько реплик, становится важным, чтобы запросы клиента правильно распределялись по доступным серверам. Балансировка нагрузки — это еще одна функция revere proxy, которая здесь используется. Обратный прокси-сервер разумно распределяет нагрузку между доступными репликами службы.

Мониторинг 🖥️

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

Внутренний трафик 🚦

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

Кэширование 💰

Кэширование — это общее преимущество, которое дает использование обратного прокси-сервера. Прокси-сервер может возвращать кэшированные результаты для аналогичных запросов, тем самым сокращая время ответа клиента.

Агрегация ⛙

Запрос одного клиента может потребовать агрегирования ответов от более чем одной службы на серверной стороне. Такая агрегация может выполняться обратным прокси-сервером, оставляя клиенту чистую конечную точку для использования!

Проксирование между слоями

Обратный прокси-сервер может использоваться в различных конфигурациях. Эти конфигурации обычно определяют уровень OSI, на котором принимается решение о маршрутизации. Обычно существует два известных проксирования — (1) проксирование на уровне 4 и (2) проксирование на уровне 7. По мере продвижения вверх по уровням мы декодируем больше информации из интернет-пакетов, которая может быть использована для принятия решения о маршрутизации.


Уровни модели OSI

Прокси уровня 4

Уровень 4 в модели OSI — это транспортный уровень. С точки зрения разработчика приложения, на уровне 4 для принятия решения о маршрутизации доступны следующие вещи:

  • IP и порт клиента, отправляющего запрос
  • IP и порт сервера, который получает запрос


Таким образом, прокси-сервер уровня 4 может принимать решения о маршрутизации только на основе IP-адреса и порта сервера и клиента. Он не может просматривать содержимое запросов и, следовательно, может принимать ограниченные решения о маршрутизации.


Есть несколько причин, по которым можно использовать прокси-сервер уровня 4:

  • Когда требуется только балансировка нагрузки на уровне пакетов.
  • Никто не хочет, чтобы обратный прокси-сервер расшифровывал запрос из соображений безопасности.
  • Требуется эффективность, поскольку проксирование на уровне 4 происходит быстро.


У прокси-сервера уровня 4 также есть несколько недостатков:

  • Поскольку мы находимся на уровне 4, интеллектуальная балансировка нагрузки невозможна.
  • Он не может выполнить настоящую балансировку нагрузки микросервисов.

Прокси уровня 7

Уровень 7 в модели OSI — это прикладной уровень. С точки зрения разработчика приложения, на уровне 7 для принятия решения о маршрутизации доступны следующие вещи:

  • Все, что было доступно на уровне 4
  • Все содержимое запроса, включая заголовки.


Поскольку на уровне 7 доступно гораздо больше контента для принятия решений, можно выполнить более разумную маршрутизацию.


Вот несколько причин, по которым можно использовать прокси-сервер уровня 7:

  • Вам необходимо принимать разумные решения по маршрутизации в обратном прокси-сервере.
  • Вы хотите использовать кеширование


Вот некоторые недостатки использования прокси-сервера уровня 7:

  • Проксирование уровня 7 обычно медленнее, чем уровень 4, поскольку он расшифровывает запрос и проверяет его содержимое для принятия решений о маршрутизации.
  • Поскольку обратный прокси-сервер проверяет содержимое запросов, при использовании прокси-сервера уровня 7 также возникает проблема безопасности.

Обратный прокси, несомненно, является одним из важных элементов микросервисной архитектуры. Без этого истинные преимущества микросервисной архитектуры никогда не смогут быть реализованы в полной мере.


На этом мы подошли к концу этого блога! Надеюсь, вы сегодня узнали что-то новое.