Jetty ou Tomcat com IO não bloqueado (Servlet 3.0)
-
27-09-2019 - |
Pergunta
Eu preciso de um ponto para começar. Eu li de Yakov Fain sobre uma performance rompida com cais e ardentes.
Percebi que já temos alguns problemas com cerca de 1200 usuários simultâneos, alguns consumidores não recebem mensagens e a CPU está sob incêndio pesado.
Alguém já tentou este Nio com Blazeds? Isso funcionou com Tomcat também? Por onde começar e o que preciso para melhorar o desempenho das mensagens?
Muito obrigado!!!
Solução
Eu sugeriria antes de seguir o caminho da personalização de Blazeds para apoiar a NIO que você perfu o perfil do seu aplicativo e verifique se os pontos de acesso são. Você verificou que é a pilha de redes em chamas que está causando mensagens perdidas? Você já perfilou seu código para ver se existem otimizações que podem ser feitas para otimizar melhor o manuseio de mensagens?
Alguns realmente afirmam http://paultyma.blogspot.com/2008/03/writing-java-multithread--servers.html
Eu digo isso porque os Blazeds não suportam o NIO apenas a versão comercial do servidor - LCDS. O que o LCDS faz realmente configurou seus próprios soquetes de Nio e gerencia solicitações através dessas conexões, ignorando a pilha de servlet padrão. Para obter o suporte da NIO, Yakov disse que "para apoiar milhares de usuários simultâneos, você também precisa para personalizar a camada de networking de Blazeds", eu estaria disposto a adivinhar que essa camada de rede personalizada não está pronta para a produção e é mais um protótipo, porque é extremamente difícil de personalizar de maneira confiável a camada de rede de qualquer servidor.