O modo de passagem TCP oferece melhor desempenho de latência do que os ouvintes HTTP

2

Se eu tiver um aplicativo, é semelhante ao seguinte:

Cliente < - > ELB < - > EC2

A latência do E2E possivelmente seria menor se eu configurasse o ELB como modo de passagem TCP do que como ouvinte HTTP?

A razão pela qual eu acredito que o modo de passagem TCP pode melhorar a latência do E2E (menor) é porque o ELB neste cenário quase não causa nenhum custo extra de salto do que o seguinte cenário:

Cliente < - > EC2

O meu entendimento está correto? Por favor, me acompanhe se não.

    
por chen 06.04.2018 / 02:22

1 resposta

3

Sua compreensão não está correta, porque a passagem TCP é realmente uma passagem útil . O balanceador aceita a conexão, cria uma nova conexão com a instância e passa a carga para frente e para trás na conexão. O tráfego ainda passa por um dispositivo extra - o balanceador.

Provavelmente, não haverá uma diferença substancial na latência, pois, uma vez que a solicitação é cortada no modo HTTP, o comportamento é semelhante, com bytes copiados de uma conexão para outra.

A desvantagem do modo TCP é que você perde algo que um ELB Clássico no modo HTTP é capaz de: reutilizar as mesmas conexões para as instâncias de tratamento de pedidos sequenciais para múltiplos clientes - ele fica inativo conexões abertas para as instâncias, aguardando a chegada de mais solicitações de clientes, o que significa menos conexões sendo iniciadas nas instâncias e muitas solicitações usando conexões que já estão estabelecidas.

Dependendo do aplicativo, um ALB - balanceador de carga de aplicativo - oferece uma vantagem adicional, não apenas reutilizando conexões de instâncias, mas suportando HTTP / 2 no lado do navegador, permitindo que o navegador envie solicitações simultâneas, que são espalhadas às instâncias como solicitações HTTP / 1.1 paralelas.

Ou, se você realmente quiser um cenário de passagem TCP, provavelmente desejará um balanceador de carga de rede NLB. Ao contrário dos outros dois tipos de balanceadores, um NLB na verdade modifica o comportamento da rede para criar traduções NAT dinâmicas para as instâncias - não há um sistema separado manipulando o tráfego, porque os NLBs são entidades virtuais. Balanceadores Clássicos e de Aplicativos são (na medida em que qualquer um pode dizer) implementados em instâncias do EC2 "ocultas".

    
por 07.04.2018 / 05:36