Вопрос

Как я могу убедиться, что мой файловый сервис надежен и масштабируем?Сколько параллельных запросов он может обработать?

Я думаю не только об аппаратных возможностях и ширине полосы пропускания.

я следую Потоковая передача больших файлов в Java-сервлете

Это было полезно?

Решение

Если это статические файлы, просто дайте ссылку на них. напрямую.Все приличные контейнеры сервлетов/серверы приложений имеют хорошо развитую DefaultServlet.Если это статические файлы, расположенные снаружи веб-приложение, с которым вы их свяжете, вы также можете просто добавить корневую папку этих файлов в качестве другого контекста.Непонятно, какой сервер вы используете, но если бы это был Tomcat, вы могли бы просто добавить новый <Context> к server.xml:

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

Таким образом, он доступен http://example.com/files/....

Если это динамически генерируемые файлы или файлы, поступающие из базы данных, вам необходимо разработать сервлет, который эффективно выполняет работу ввода-вывода:то естьне храните без необходимости все данные в памяти (например,в ByteArrayInputStream или byte[] прежде чем выдать их на выход.Просто напишите байты немедленно на выход по мере поступления.Вы можете найти это в тех примерах базовый файловый сервлет и еще расширенный файловый сервлет (поддержка резюме и так далее) полезно.

Другие советы

Если вы просто обслуживаете статические файлы из файловой системы, просто используйте Apache — это будет лучше, чем все, что вы напишете сами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top