O quão melhor é o mecanismo de Conexão do Tomcat e do Jetty?

2 respostas
agranado2k

Oi experts,

Hum precisava de uma opinião de vcs. Eu implementei um servidor Http simples, que irá distribuir vídeos, fazendo stream de vídeos. Ou seja, um cliente realiza uma requisicão e o meu HttpServer a interpreta e inicia um stream de vídeo. O stream é enviado para um flash player, mas podia ser outro qualquer. Minha questão é: O quão mais eficiente, se é que seria mais eficiente, seria se eu colocasse um Tomcat ou um Jetty, ao invés de utilizar o meu HttpServer simplificado. Ele realiza o padrão, digo, cria uma thread nova para cada requisicão aceita e a mantêm, junto com o socket criado, até todo o stream ser enviado. O que eu gostaria que vcs me dissem, já que possem experiência com Java na web, o quão mais eficiente e escalável seria usar o Tomcat e Jetty?

Abracos!!!

2 Respostas

C

A nao ser que vc apresente alguma inovacao em termos de arquitetura porque ele seria mais performatico que o jetty ou o simpleframework que sao frameworks bem leves e principalmente opensource, seus codigos fonte ja foram lidos por diversos desenvolvedores ao redor do mundo…

agranado2k

Hum., deixa eu tentar reformular minha questão, acho que não conseguir passar o que queria. Minha questão seria sobre o desempenho do mecanismo de obtenção de conexão do Tomcat e do Jetty. Tinha visto que o Tomcat usa um que se chama Grizzla, acho que é assim que se escreve, e o Jetty não sei… mas o que estou interessado em saber é…

Partindo que eu possuo um HttpServer bem simples, que eu mesmo implementei em poucas linhas. Que tem o objetivo de interpretar uma requesição, abrir um socket e enviar um stream de vídeo por esse socket, mantendo-o aberto enquando o stream de vídeo não terminar( digo, até o final do vídeo). E para cada requisição uma thread é criada para pegar esse stream de vídeo e passar para o OutputStream do socket.
O que gostaria de saber é, o quanto o Tomcat e/ou o Jetty, ou qualquer outro container, poderia melhorar a performance e a escalabilidade dessa minha abortagem? Importante lembrar que o socket se mantem aberto enquanto o stream é enviado.
Ou será que existe algum outro modo melhor de fazer isso, sem usar o Tomcat e o Jetty? :slight_smile:
Pergunto isso, pq java tem um problema com I/O, já que este é bloqueante, e manter um socket aberto para enviar um stream de video por seu OutputStream tem um impacto, que não sei exatamente qual. :slight_smile:

Espero ter conseguido me expressar melhor!!! :slight_smile:

Abraços!!!

Criado 3 de setembro de 2008
Ultima resposta 3 de set. de 2008
Respostas 2
Participantes 2