Streaming de arquivos grandes em um servlet java

Estou construindo um servidor java que precisa ser dimensionado. Um dos servlets servirá imagens armazenadas no Amazon S3.

Recentemente, sob carga, fiquei sem memória na minha VM e foi depois que adicionei o código para veicular as imagens, por isso tenho certeza de que o streaming de respostas maiores de servlet está causando meus problema

Minha pergunta é: existe alguma prática recomendada em como codificar um servlet java para transmitir uma resposta grande (> 200k) de volta para um navegador quando lida de um banco de dados ou outro armazenamento em nuve

Eu considerei gravar o arquivo em uma unidade temporária local e gerar outro encadeamento para lidar com o streaming, para que o encadeamento do servlet do tomcat possa ser reutilizado. Parece que isso seria pesado demais.

Qualquer pensamento seria apreciado. Obrigado

questionAnswers(8)

yourAnswerToTheQuestion