#Разработка #Балансировка

Меня тут недавно спросили, какие варианты балансировки бывают. Что ж, это популярный вопрос, особенно его любят на собеседованиях. Давай разбираться.

Во-первых, что такое балансировка? Если у тебя один сервер, то его проще завалить большим количеством запросов, но если у тебя их несколько, то и нагрузку можно распределить. Так вот, представь, что у тебя есть несколько серверов, и ты решаешь, как им раздать задачи.

1. Round Robin — «карусель». Запросы просто по очереди отправляются на каждый сервер: первый, второй, третий… и снова по кругу. Пример: зашли 3 пользователя, первый запрос пойдёт на сервер 1, второй на сервер 2, третий на сервер 3.

2. Weighted Round Robin — тот же принцип, но если сервер мощнее, он получит больше запросов. Пример: сервер 1 мощный — он получит 3 запроса, а слабый сервер 2 — только 1.

3. Least Connections — запрос отправляется на сервер, у которого сейчас меньше всего работы. Пример: если сервер 1 уже занят, запрос пойдёт на сервер 2, даже если до этого сервер 1 был первым в очереди.

4. IP Hash — распределяет запросы на основе IP-адреса пользователя, так что один и тот же юзер всегда попадёт на один и тот же сервер. Пример: юзер с IP 123.45.67.89 всегда пойдёт на сервер 1.

https://t.me/legko_v_it/359