#проектирование_систем
📝 Наглядная демонстрация распространенных алгоритмов балансировки нагрузки
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник