Tempo-limite do HAProxy após 120 segundos

Fiz um balancer de carga usando HAProxy. Minhas conexões podem levar até 1-4 minutos, então eu aumentei os valores de tempo-limite padrão em HAProxy para 300s do seguinte modo:

global
    daemon
    log 127.0.0.1 local0 notice
    maxconn 2000

defaults
    log     global
    mode    tcp
    option  tcplog
    option  dontlognull
    retries 3
    option redispatch
    timeout connect 300s
    timeout client  300s
    timeout server  300s
    option http-keep-alive

frontend LOAD_BALANCER_TIER
    bind *:80
    default_backend WEB_SERVER_TIER

backend WEB_SERVER_TIER
    balance leastconn
    mode tcp
    server segmentingApi01 some_private_ip:7331 check tcp-ut 300000
    server segmentingApi02 some_private_ip:7331 check tcp-ut 300000
    server segmentingApi03 some_private_ip:7331 check tcp-ut 300000

como podem ver, até aumentei a ligação TCP nas opções server. No entanto, o meu pedido para o tempo-limite do balancer de carga após exatamente 120s. por favor, note que eu acredito que a questão é do balancer de carga como quando eu enviar um pedido para os servidores diretamente (some_private_ip:7331) ele não é tempo-limite.

Estava a pensar se ... alguém pode ajudar-me com isto.

 0
Author: Nima, 2018-07-16

1 answers

Primeiro, eu não acho que "redispatch" e "http-keep-alive" funcionam no modo tcp - como o haproxy não lida com a informação da aplicação (http) no modo tcp.

Talvez devesses tentar a "opção tcpka". Isto faz TCP manter vivo, de modo que o SO não vai cancelar a conexão quando nenhum dado é trocado - o que eu acho que está acontecendo aqui.

Você não deve definir o tempo-limite da ligação para um valor tão elevado, porque este tempo-limite é para fazer a ligação inicial ao servidor.

 1
Author: emmwie, 2018-07-31 18:53:49