Java Скачать предотвращение наводнений - PullRequest
1 голос
/ 06 мая 2011

В настоящее время у меня есть Java-загрузчик, который загружает файл .zip и распаковывает его, однако хост имеет ограничение скорости загрузки 8 МБ. Таким образом, из-за проблем с пропускной способностью, если более 10 человек одновременно загружают файл (который составляет около 30 МБ), это приводит к резкому снижению скорости загрузки, что приводит к тому, что он занимает от 2 минут до 10 часов

В любом случае, вот код загрузки

BufferedInputStream in = new BufferedInputStream(new java.net.URL(
"http://example.com/exampleJar.jar").openStream());
FileOutputStream fos = new FileOutputStream("exampleJar.jar");
BufferedOutputStream bout = new BufferedOutputStream(fos);

Я думаю, возможно, это способ проверить, сколько людей скачивает его, и, если количество людей, загружающих в настоящее время X, переключается на другую ссылку, которая может быть найдена в массиве ссылок.

1 Ответ

2 голосов
/ 06 мая 2011

это должно быть сделано на стороне сервера, а не на стороне клиента

в зависимости от того, какой сервер вы используете, найдите способ подсчета текущих запросов

если больше, чем заданное вами значение

отправьте http 302 временно перемещенный http и предоставьте еще один URL для загрузки

скажем

http://download2.example.com/exampleJar.jar

...