Балансировщик нагрузки работает для популярных веб-сайтов - PullRequest
1 голос
/ 30 марта 2012

Меня спросили в интервью, и я был озадачен ответом на приведенный ниже вопрос.

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

В вышеприведенном случае весь запрос сначала направляется в Балансировщик нагрузки, а затем Балансер нагрузки отвечает за передачу запроса на фактический сервер, который выдаст ответ.

Таким образом, Балансировщик нагрузки является записьюточка для всего запроса, и у него тоже есть возможность обработать запрос?Итак, сколько запросов может принять Балансировщик нагрузки, и если он принимает до некоторого предела, то как система работает в таком случае?

Извините, если мой Вопрос не имеет смысла, объясните, пожалуйста?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Балансировщик нагрузки обычно использует облегченный HTTP-сервер на основе событий (например, NginX), который поддерживает соединение с внутренним сервером для каждого входящего запроса.

Популярная установка:

NginX
|     \
|      \
Apache  Apache ...

Поскольку NginX может обрабатывать гораздо больше соединений и имеет довольно предсказуемый шаблон использования памяти, его обычно можно использовать в качестве интерфейса для нескольких внутренних серверов Apache (работающих на PHP, Python, Ruby и т. Д.).

Замените Apache на Tomcat / Jetty / вставьте сюда ваш любимый контейнер сервлетов и примените ту же логику.

Суть в том, что ваши внутренние серверы обычно делают что-то гораздо более длительное (запуск некоторого языка сценариев, запросы к БД и т. Д.), Что более чем вероятно, что каждый внутренний сервер не является узким местом своего HTTP-сервера компонент, а не логика приложения.

Не существует единого размера, который бы подходил для решения подобных проблем. Другое решение (среди многих), когда вы перерастаете емкость одного компьютера с балансировщиком нагрузки, заключается в использовании циклического перебора DNS между несколькими балансировщиками, поддерживающими несколько внутренних серверов.

0 голосов
/ 30 марта 2012

Я бы сказал, что если количество подключений возрастает до пределов точки входа Load Balancer, то вы можете реализовать балансировку уровня DNS (если в запросах используется разрешение имен).Каждый запрос будет направляться (например, «циклически перерабатываться») в разные точки входа благодаря разрешению DNS, которое отвечает за переключение между разными разрешениями для одного и того же имени в запросах и отправку этих запросов различным балансировщикам нагрузки или напрямуюразные серверы (последний, подразумевал бы другую технику LB).

Но 500 запросов в секунду не должны быть проблемой для сервера, отвечающего за балансировку.HAProxy может обрабатывать тысячи запросов в секунду без проблем, переадресовывать разные сеансы на разные серверы или также поддерживать активные сеансы, распределенные на разных серверах.

HAProxy - это бесплатное, очень быстрое и надежное решение, обеспечивающее высокую доступность, балансировку нагрузки и прокси для приложений на основе TCP и HTTP.Он особенно подходит для веб-сайтов, сканирующих при очень высоких нагрузках при необходимости сохранения или обработки на уровне 7.Поддержка десятков тысяч соединений вполне реальна для современного оборудования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...