Até onde eu sei, o AJP nem no Apache nem no Tomcat finaliza o afogamento, mas tenta passar o pedido entre as camadas o mais rápido possível.
Aqui estão algumas ideias:
É possível definir limites de conexão para trabalhadores, o que, quando atingido, leva o trabalhador a não aceitar mais conexões, a fim de evitar saturação e sobrecarga.
É possível introduzir mais hosts de back-end e equilibrar os trabalhadores entre eles para aumentar a capacidade.
Pode-se limitar a largura de banda no Tomcat, por exemplo, usando filtros personalizados, o que seria uma solução de codificação.
É possível usar o conector http em vez do AJP para usar a opção compactação e possivelmente aumentar a taxa de transferência nas mesmas conexões.
Pode-se introduzir o controle de largura de banda em nível de rede para limitar a taxa de transferência da conexão AJP "de fora". No Linux isso pode ser feito de forma nativa usando as diretivas iptables - limit e - limit-burst . Pelo que sei, o Windows está, no entanto, sem uma solução nativa de otimização de banda de nível de rede. Luchariamente, há complementos de terceiros que fornecem controle granular de largura de banda, como Netlimiter e Netbalancer .
Olhando para fora do sistema operacional, é possível executar as conexões por meio de um dispositivo limitador, como um balanceador de carga de hardware, mas por que usar o AJP?
É importante, porém, que, seja qual for o modo como você administra o afogamento, é necessário que o Apache e o Tomcat tenham capacidade de permitir o crescimento de suas filas / registros de solicitações, pois é possível aumentar a contagem de sessões se as solicitações forem atendidas mais lentamente .
Por fim, o IIS tem otimização da largura de banda nativa e pode reescrever o proxy reverso / URL por meio do módulo ARR para um Tomcat de back-end. Não tenho certeza se a limitação está disponível para conexões ARR: ed, mas se você estiver no Windows, vale a pena dar uma olhada.