мы получили высоконагруженное Java-приложение, которое работает в кластерном режиме.
Мне нужно добавить возможность загружать и загружать файлы для наших клиентов.Для хранения файлов я собираюсь использовать пользовательские gridFs, не уверен, что это лучший выбор, но монго может быть кластеризовано, и монго может реплицировать данные между узлами diff.Это именно то, что мне нужно.
Разная группа пользователей должна быть ограничена разной пропускной способностью.На основании некоторых бизнес-правил я должен ограничить скорость загрузки для некоторых пользователей.Я видел несколько решений для этого
Большинство из них работает одинаково.
- Чтение пакета байтов
- Спящий поток
- Повтор
Монго просто предоставляет мне InputStrem, и я могу читать из этого потока и записывать в выходной поток сервлета.Я не уверен, что это правильный подход.Также я боюсь, что пользователи могут создавать много параллельных потоков во время загрузки, что может снизить производительность.
Может ли это быть проблемой для контейнера сервлета?
Если это может быть проблемой, как ее можно избежать?вероятно, используя nio?
Я предпочитаю использовать чистое решение Java.
Любая помощь будет высоко ценится.