Precisa DUPLICAR as solicitações HTTP para dois servidores

3

Estamos desenvolvendo um novo servidor para substituir um antigo e queremos colocar o lado a lado antes de & depois dos testes - para que possamos comparar o resultado final e encontrar as discrepâncias.

A entrada para ambos os serviços (antigo e novo) são solicitações HTTP (principalmente se não todas GET, mas possivelmente também POST), precisamos ter o tráfego vindo para o servidor antigo duplicado e enviado também para o novo servidor (não em vez disso). É claro que precisaremos fazer uma pequena reescrita no nome do host e porta na solicitação para evitar um loop infinito.

O servidor antigo está rodando no Apache (PHP), o novo é o Jetty (Java, Dropwizard)

Deve haver uma maneira de fazer isso, eu simplesmente não consigo encontrar as palavras-chave para a pesquisa do Google, eu acho ...

    
por Moshe Eshel 23.01.2014 / 10:36

3 respostas

1

Embora não seja o que você está pedindo, sugiro outra abordagem para testar o novo servidor.

Se você colocar um balanceador de carga na frente de ambos os servidores e jogar com os algoritmos de balanceamento de carga, poderá ao mesmo tempo testar o novo servidor e substituir gradualmente o antigo. Você pode enviar 99% das solicitações para o servidor antigo e o um por cento restante das solicitações irá para o novo, onde você poderá analisar de perto se o serviço está funcionando conforme o esperado.

Se tudo funcionar bem, você pode aumentar a carga gradualmente; 90% -10%, 80% -20% e assim por diante.

Dica: verifique o haproxy e as opções weight e static-rr .

    
por 23.01.2014 / 11:08
1

O que escolhemos foi usar o link do Gor (agora GorReplay)

esta solução permite instalar um ouvinte no host original, e o que ele faz é registrar qualquer solicitação HTTP de entrada, isso é feito sem modificá-lo ou bloquear o servidor de produção de manipulá-lo.

Em seguida, ele envia esses pedidos para um servidor de reprodução Gor que pode manipular todos os tipos de lógicas úteis de divisão / aumento de carga com base nas solicitações recebidas - você pode enviar uma porcentagem de solicitações para um servidor de desenvolvimento ou uma multiplicação das solicitações para criar uma carga simulada (mas a partir do tráfego real) em seu ambiente de preparação, ou ambos ...

Infelizmente, isso está no nível do servidor, portanto, é necessário instalar em cada servidor de produção para obter todo o tráfego, mas não é necessário, e fornece uma ótima solução para o problema em questão.

    
por 25.01.2017 / 10:54
0

Existe outra ferramenta escrita no NodeJS e é gratuito o link ou no github link

Como agora passou muito tempo desde que a pergunta, pelo menos, espero que isso possa ajudar outros leitores, se não o solicitante original.

    
por 30.10.2018 / 18:30