Балансировка нагрузки является основополагающим принципом построения высокодоступных систем
1. Что такое балансировка нагрузки?
Балансировка нагрузки — это практика распределения вычислительных нагрузок между двумя или более компьютерами.
Это делается для повышения отказоустойчивости, улучшения доступности приложений и распределения нагрузки между несколькими машинами.
Балансировка нагрузки может осуществляться на уровне 4 OSI или уровне 7 OSI в зависимости от архитектуры приложения:
* Балансировщики на уровне 4 маршрутизируют трафик на основе IP-адресов и портов
* Балансировщики на уровне 7 предоставляют гораздо больший контроль над маршрутизацией с использованием протоколов, URL-адресов и т.д.
2. Статическая vs динамическая балансировка нагрузки
Статическая балансировка работает на основе предварительно настроенных параметров и идеально подходит для сценариев, где не ожидается резкого роста трафика.
Популярные алгоритмы статической балансировки:
* Круговая система (Round robin)
* Взвешенный круговой алгоритм (Weighted round robin)
* IP-хеши
Динамическая балансировка учитывает текущую доступность, рабочую нагрузку и состояние каждого сервера. Она может перенаправлять трафик с перегруженных или плохо работающих серверов на недозагруженные, обеспечивая равномерное и эффективное распределение.
Популярные алгоритмы динамической балансировки:
* Наименьшее количество соединений (Least connection)
* Взвешенное наименьшее количество соединений (weighted least connection)
* Взвешенное время отклика (weighted response time)
* Балансировка на основе ресурсов (resource-based)
Уровень 4 (Сетевая балансировка нагрузки)
Балансировщик нагрузки создается с указанием IP/DNS и порта, и связывается с группой виртуальных машин, на которых запущена определенная служба на определенном порту
Задача балансировщика — принимать запросы на определенном порту и перенаправлять их на один из доступных внутренних хостов.
Балансировщик может быть настроен на выполнение периодических проверок работоспособности для обеспечения доступности внутренних хостов и приложений.
Уровень 7 (Балансировка нагрузки на уровне приложений)
Конечный пользователь устанавливает соединение с определенным URL.
Балансировщик расшифровывает запрос, анализирует запрашиваемый сервис и направляет его на внутренний сервер, на котором запущен запрошенный сервис.
Балансировка на уровне 7 предоставляет дополнительные преимущества, такие как:
* Завершение SSL-сессий
* Кэширование
* Предварительная обработка запросов
Post #1791
2.13K
- ❤ 13
- 👍 3
- 🫡 3