Estou fazendo um servlet que ira responder as resquisições feitas por um celular.
Estava vendo é pode ocorrer que 500 ou 1000 ou mais celulares pode requisitar infirmações ao mesmo tempo para o servlet.
No caso para para requisição é criado uma thread, correto né?
Se vinherem tanta requisições como o meu servidor Tomcat vai aguentar tanta chamda? O meu servlet precisa ter um trabalho especial para tantas requisições? Isso num podera deixar o servidor lento?
Obrigado
Um servlet é uma Thread rodando no tomcat.
O que vc pode fazer é colocar a palavra synchronized na assinatura de um método.
Neste caso a primeira requisição irá pegar o método somente para ela liberando para as outras somente depois de concluir o processamento.
Isto é recomendável em situações de gravação em arquivo ou banco.
Por isso é necessário maiores cuidados para não deixar uma requisição por um tempo muito longo usando o método.
No meu caso o processo é ate rapido, pois sera lido de um arquivo xml os dados e finalizado o processo do servlet, mas se isso for em grande demanda num podera sobrecarregar o servidor Tomcat, no caso é o que estou
usando?
Opa,
Acho q vc poderia fazer um programinha para simular isso.
Faz um javinha que crie threads e estabeleça conexão com esse servidor, aí vc, é claro, cria meios de medir o desempenho do server e informações pertinentes a vc!
Eu não vejo por que sincronizar. Ele só vai ler e enviar, cada chamada vai ter sua própria pilha, não corre risco de um request modificar dados de outro. Sincronizar só vai fazer o cliente esperar mais.
Que vai ficar mais lento, com certeza. 1000 chamadas são 1000 threads.
Talvez você devesse limitar o número de chamadas simultâneas.
Vo fazer o teste conforme clv falou.
Não tenho como limitar pois podem vim requisições 1 ,10 ,100 , 500 ,1000 n vezes ao mesmo tempo. Mas como o procedimento a ser feito dentro do metodo é tecnimante rápido, acho que num ficaria pesado para o servidor.
O que eu poderia fazer caso fica-se muito pesado para o servidor e a resposta fosse lenta, seria dividir isso a aplicação entre servidores. Existe isso? isso seria so uma hipotese.