HAProxy e preocupação de afunilamento do servidor de streaming

1

Estou investigando o HAProxy para usá-lo como um balanceador de carga para vários servidores nginx. Cada servidor está transmitindo um arquivo estático (arquivo de áudio) a partir dele. O Nginx estará usando uma estrutura symfony2. Em relação à afinidade / persistência de sessões, usarei o memcached em servidores nginx. Estou começando com um orçamento limitado, por isso estou tentando derivar o esquema de rede como flexível e escalonável quanto possível. Vou desenhar um diagrama para simplesmente a minha pergunta:

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

Ps: Eu entendo que precisarei do segundo servidor haproxy para failover, mas infelizmente não posso pagar mais servidores no momento.

Minha principal preocupação é como a "resposta" é feita com o HAProxy. No meu entender, se a resposta estiver passando pelo HAProxy, o LB se tornará um gargalo, já que não será capaz de atender a mais usuários do que sua capacidade de porta (não se esqueça de que é um servidor de streaming com uma carga hipotética de 95%). No entanto, vejo que as pessoas dizem que o HAProxy só faz roteamento, mas não sei ao certo o que significa se inbound & o tráfego de saída ainda está passando pelo HAProxy.

    
por user31412 03.08.2013 / 20:14

1 resposta

2

O HAProxy tem que ser um servidor de alta largura de banda. Ele precisa ter pelo menos a largura de banda dos servidores backend combinados, para não estragar tudo. No melhor dos casos, você tem um pouco de espaço para a esquerda. Uma conexão de 10GBps pode ser boa para o começo.

Por outro lado, não precisa do maior CPU. É isso que "as pessoas" podem significar. Como os servidores de backend podem se concentrar nos cálculos, o HAProxy só precisa rotear o tráfego.

    
por 04.08.2013 / 01:38