Балансировщики нагрузки бывают двух основных типов: сетевые балансировщики и балансировщики прикладного уровня.
Сетевой балансировщик
Сетевой балансировщик работает на транспортном уровне (L4).
Основные характеристики:
-
Работает на транспортном уровне (TCP/UDP) и использует сетевую информацию (IP-адреса). Распределяет трафик на основе IP-адресов и номеров портов TCP/UDP.
-
Не анализирует содержимое запроса. Определяет, откуда и на какой порт приходит трафик, и направляет его на свободный сервер.
-
Подходит для сервисов с простыми или нестандартными протоколами, например для баз данных, почтовых серверов, игр или API.
В Load Balancer используются сетевые балансировщики нагрузки: они принимают и распределяют трафик, поступающий по TCP-протоколу.
Балансировщик прикладного уровня
Балансировщик прикладного уровня работает с данными уровня приложений (L7), что позволяет интеллектуально распределять трафик на основе логики приложения, а не только сетевых параметров.
Основные характеристики:
-
Работает на уровне приложений.
-
Анализирует содержимое запросов, например URL или HTTP-заголовки.
-
Выбирает сервер не только по IP-адресу и порту, но и в зависимости от содержимого запроса. Например, запрос к example.com/shop можно направить на один сервер, запрос к example.com/blog — на другой.
-
Подходит для сложных сайтов, где важна интеллектуальная маршрутизация, проведение A/B-тестов, защита от ботов и т. д.
Балансировщики прикладного уровня в Load Balancer ожидаются в ближайших релизах.
Выбор типа балансировщика
В таблице приведены основные задачи, которые решают балансировщики сетевого и прикладного уровней.
Задача | Сетевые балансировщики (L4) | Балансировщики прикладного уровня (L7) |
---|---|---|
Массовая обработка TCP/UDP трафика | ||
Гибкая маршрутизация HTTP/HTTPS-трафика, в том числе по содержимому запросов |
- Сетевой балансировщик
- Балансировщик прикладного уровня
- Выбор типа балансировщика