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