Что такое балансировка Least Connection

«Что такое балансировка Least Connection» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Балансировка Least Connection — это метод распределения нагрузки, при котором новые запросы направляются на сервер с наименьшим количеством активных соединений.

Преимущества:

  • Эффективен при неравномерной нагрузке.
  • Учитывает текущую загруженность серверов.

Пример на Go с использованием net/http/httputil:

director := func(req *http.Request) {
    target := getLeastLoadedServer() // Выбираем сервер с min соединениями
    req.URL.Scheme = target.Scheme
    req.URL.Host = target.Host
}
proxy := &httputil.ReverseProxy{Director: director}
http.ListenAndServe(":8080", proxy)

Нюансы:

  • Требует отслеживания состояния соединений.
  • Может быть менее эффективен при очень коротких запросах.