Espelhamento de tráfego com Nginx (para aumentar a disponibilidade e diminuir a latência)

Espelhamento de tráfego com Nginx (para aumentar a disponibilidade e diminuir a latência)

Preciso duplicar/espelhar o tráfego que chega ao meu servidor.

Quer dizer, tenho N servidores backend A1 A2 ... An(n>=2) e um nginx como proxy reverso e balanceador de carga.

Todo o tráfego que chega ao Nginx é redirecionado para Ax e Ay(x!=y) emparalelo, se um dos servidores estiver inativo (timeout ou 5xx), a resposta do outro servidor poderá ser usada imediatamente e retornar o resultado ao cliente.

Espelhando o tráfego (não tente novamentemas envie as solicitações duplicadas em paralelo), posso criar redundância, o que significa que mais de um servidor back-end pode processar uma solicitação ao mesmo tempo.

Preciso responder ao cliente em 30ms, se definido retries=1, o tempo limite deve ser definido para 15ms (difícil de arquivar), então espelhar o tráfego pode ser uma solução.

É possível?

Responder1

Sua pergunta quase tem uma resposta em geral. O que você está descrevendo é apenas balanceamento de carga com verificações de integridade. Isso é definitivamente possível com o nginx e essa configuração está descrita em seus documentos:http://nginx.org/en/docs/http/load_balancing.html

informação relacionada