Um Proxy Reverso é uma peça-chave no gerenciamento de conexões em sistemas que lidam com um alto tráfego de dados. Ele desempenha um papel crítico ao otimizar o uso dos recursos de memória do servidor, especialmente em cenários onde aplicativos baseados em HTML5 são extensivamente utilizados.

Contexto

Para ilustrar essa função, consideremos um cenário com dois gateways que operam com balanceamento de carga do tipo round-robin e direcionam o tráfego para 10 servidores de aplicação. Todas as conexões são estabelecidas por meio do protocolo HTTP.

Quando um cliente que utiliza HTML5 faz uma solicitação, é necessário alocar aproximadamente 50 MB de memória para garantir o funcionamento adequado da aplicação. Nesse contexto, o Proxy Reverso entra em ação, transferindo a responsabilidade pelo gerenciamento desses recursos de memória da sessão do cliente HTML5 do servidor Gateway para o servidor de aplicação correspondente.

Benefícios do Proxy Reverso

Esse processo oferece diversas vantagens:

  1. Alívio de Memória: Suponhamos que cada servidor de aplicação possa acomodar no máximo 120 usuários. Isso significa que o uso de memória equivalente a 6 gigabytes, considerando 120 usuários alocados, é transferido para cada servidor de aplicação, evitando uma sobrecarga no servidor Gateway.

  2. Redução de Erros: Ao transferir a carga de memória para os servidores de aplicação, o risco de erros críticos, como a necessidade de alocar mais memória RAM, é significativamente reduzido. Esses erros frequentemente resultam em interrupções inesperadas no sistema, como exemplificado na captura de tela do erro abaixo.

Problemas Comuns

Quando o sistema não consegue gerenciar a memória de forma eficiente, isso pode se manifestar de várias maneiras, incluindo:

  • Erro de Memória: Os servidores podem enfrentar o erro "java.lang.OutOfMemoryError: Java heap space," que é um indicativo de insuficiência de memória Java, como ilustrado na captura de tela abaixo.

Este log pode ser encontrado no seu ambiente através da URL localhost/w0j41 ou dominio.com.br/w0j41

  • Problemas de Logon: Os clientes podem encontrar dificuldades ao tentar fazer o logon, pois o sistema não consegue alocar memória suficiente para processar suas solicitações.

  • Sessões Perdidas: Sessões dos clientes podem ser perdidas, resultando em telas azuis ou pretas, o que pode ser causado por uma alocação insuficiente de memória.

Em resumo, o Proxy Reverso desempenha um papel crucial na otimização dos recursos de memória e na manutenção de uma experiência de usuário fluída em ambientes com grandes volumes de conexões, como descrito neste contexto.