Назад | Перейти на главную страницу

Проблема узких мест HAProxy и потокового сервера

Я исследую HAProxy для использования в качестве балансировщика нагрузки для ряда серверов nginx. Каждый сервер передает с себя статический файл (аудиофайл). Nginx будет использовать фреймворк symfony2. Что касается сродства / устойчивости сеансов, я буду использовать memcached на серверах nginx. Я начинаю с ограниченного бюджета, поэтому пытаюсь создать сетевую схему как можно более гибкой и масштабируемой. Я просто нарисую схему на свой вопрос:

           +---> nginx server 1 @ 1gbps
           |
HAProxy <--+---> nginx server 2 @ 1gbps
           |
           +---> nginx server 3 @ 1gbps

Ps: Я понимаю, что мне понадобится 2-й сервер haproxy для аварийного переключения, но, к сожалению, я не могу позволить себе больше серверов на данный момент.

Меня больше всего беспокоит то, как осуществляется «ответ» с помощью HAProxy. Насколько я понимаю, если ответ идет через HAProxy, LB становится узким местом, поскольку он не сможет обслуживать больше пользователей, чем его пропускная способность (при условии, что это потоковый сервер с гипотетической нагрузкой 95%). Однако я вижу, что люди говорят, что HAProxy выполняет только маршрутизацию, но я не уверен, что это значит, если входящий и исходящий трафик все еще проходит через HAProxy.

HAProxy должен быть сервером с высокой пропускной способностью. У него должна быть как минимум полоса пропускания бэкэнд-серверов вместе взятых, чтобы не все ограничивать. В лучшем случае у вас останется небольшой запас. Для начала может подойти соединение со скоростью 10 Гбит / с.

С другой стороны, ему не нужен самый большой процессор. Вот что может означать «народ». Поскольку внутренние серверы могут сосредоточиться на вычислениях, HAProxy необходимо только маршрутизировать трафик.