Dados confiáveis ??servindo
-
19-09-2019 - |
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
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