Pergunta

Como posso ter certeza que meu serviço de arquivos é confiável e escalável? Quantas pedido paralela ele pode lidar?

Estou pensando além da largura da capacidade de hardware e banda.

Estou seguindo streaming de arquivos grandes em um java servlet

Foi útil?

Solução

Se esses são arquivos estáticos, apenas link para ele diretamente . Todos os decentes servletcontainers / appservers ter um DefaultServlet bem desenvolvida. Se esses são arquivos estáticos localizados fora o webapplication de onde você ligá-los para, em seguida, você também pode simplesmente adicionar a pasta raiz dos arquivos como outro contexto. Não está claro qual servidor você está usando, mas se fosse Tomcat, você pode simplesmente adicionar um novo <Context> para server.xml:

<Context docBase="/path/to/static/files" path="/files" />

Desta forma, é acessível por http://example.com/files/....

Se esses são arquivos gerados dinamicamente ou ficheiros provenientes de um banco de dados, então você precisa para desenvolver um servlet que faz o trabalho IO eficiente: ou seja, não desnecessariamente armazenar todos os dados na memória (por exemplo, em um ByteArrayInputStream ou byte[] antes de emitir-lhes para a saída. Basta escrever os bytes imediatamente para a saída como ele vem em. Você pode encontrar este esses exemplos de uma básico fileservlet e mais avançado fileservlet (resumos de suporte e assim por diante) útil.

Outras dicas

Se você está apenas servindo arquivos estáticos a partir de um sistema de arquivos é só usar Apache -. Ele vai ser melhor, então qualquer coisa que você vai escrever-se

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top