HAProxy cria uma lógica de roteamento personalizada

1

É possível escrever uma lógica de roteamento personalizada para o HAProxy. Eu preciso disso de tal forma que cada servidor de aplicativos seja alocado no máximo em 1000 conexões TCP, então, somente o loadbalancer tentará rotear o próximo pedido TCP para o próximo servidor de aplicativos.

se não for com o HAProxy, se houver outro balanceador de carga que possa fazer isso, por favor, avise-me.

A persistência pode ser aplicada a conexões TCP. Não haverá solicitação HTTP.

obrigado

    
por kumar 03.07.2013 / 12:14

2 respostas

1

Sim, isso é possível. Você deseja a instrução balance first na sua seção backend ou listen . Você também precisará atribuir um valor maxconn para cada servidor backend.

Aqui está uma configuração de exemplo:

listen kumarServer
    bind *:80
    mode tcp
    balance first
    default-server maxconn 1000
    server kumar1 10.0.1.21
    server kumar2 10.0.1.22
    server kumar3 10.0.1.23

E sim, as conexões TCP podem ter persistência. Mas você está limitado ao endereço IP de origem.

Com base no seu comentário, é necessário monitorar determinados parâmetros nos servidores para decidir qual servidor carregar os clientes, verifique a option httpchk em combinação com http-check expect ou http-check disable-on-404 . Você também pode usar option lb-agent-chk .

Vamos ver option httpchk e http-check disable-on-404 . Para que isso funcione, seu aplicativo deve expor uma página de status simples que retorne um status HTTP de 200, se o servidor estiver disponível para novas conexões, ou 404, se nenhuma nova conexão for aberta. stick on src permitirá que os usuários que já têm conexões ativas mantenham sua conexão e reconectem se a conexão deles for perdida.

listen kumarServer
    bind *:7000
    mode tcp
    balance first
    stick on src
    default-server maxconn 1000
    option httpchk
    http-check disable-on-404
    server kumar1 10.0.1.21 check port 80
    server kumar2 10.0.1.22 check port 80
    server kumar3 10.0.1.23 check port 80
    
por 04.07.2013 / 03:23
-1

Nenhum dos algoritmos de balanceamento de carga internos do HAproxy atende ao seu caso de uso, nem fornece nenhum meio para criar seu próprio algoritmo personalizado.

A única maneira de fazer isso no HAproxy é modificar a fonte para fornecer essa funcionalidade.

    
por 03.07.2013 / 13:03

Tags