Является ли http POST размещение файла по сети гораздо менее эффективным, чем копирование? - PullRequest
0 голосов
/ 12 октября 2010

Мы разрабатываем службу Windows, которая будет действовать как своего рода «подчиненный» процесс. Этот процесс в основном загружает PDF-файл, разбивает его на несколько PDF-файлов, а затем должен отправить этот PDF-файл обратно.

В настоящее время мы используем http-запрос для получения pdf и несколько POST для отправки файлов обратно. Это позволяет ведомому сервису работать практически с любой машины, и можно легко добавить больше подчиненных, чтобы облегчить нагрузку по мере необходимости.

У меня такой вопрос: использует ли http для передачи файлов, как это значительно медленнее, чем, например, просто с помощью команд копирования (что будет работать, только если ведомое устройство находится на той же машине / сети).

Использование нормальных команд возможно, но мне нравится гибкость, позволяющая просто добавить нового ведомого в любое место.

Ответы [ 3 ]

1 голос
/ 12 октября 2010

Моя полностью основанная на интуиции мысль состоит в том, что некоторые протоколы, такие как NFS, будут при некоторых обстоятельствах быть несколько и, возможно, даже значительно быстрее, чем HTTP. Но я не думаю, что достаточно данных, чтобы пройти. Я думаю, вам нужно просто выяснить, какая разница будет иметь для вас значение, а затем провести несколько быстрых тестов. А еще лучше, сделайте интуитивно понятный звонок, который лучше всего подходит для ваших нужд - HTTP, безусловно, намного легче получить через брандмауэры и через открытый интернет, и, возможно, даже через VPN - и просто попробуйте сначала. Если вы попали в стену, поэкспериментируйте с другими вариантами.

Обновление: сразу после публикации я вспомнил, что Backblaze , служба онлайн-резервного копирования, использует HTTPS для всей своей внутренней передачи данных в свои устройства хранения и обратно. Это задокументировано в этом посте: петабайт в бюджете: Как создать дешевое облачное хранилище - перейдите к «Backblaze Storage Pod Run Free Software». Там есть хорошие размышления о преимуществах HTTPS по сравнению с протоколом более низкого уровня. И они должны быстро передать много данных. Так что, если это работает для них, есть большая вероятность, что это будет работать для вас.

1 голос
/ 12 октября 2010

rsync или аналогичный двоичный протокол будет быстрее, поскольку при создании http-запроса не будет никаких накладных расходов. Он также имеет некоторые другие полезные функции, такие как ограничение скорости, поэтому вы не перегружаете целевой хост.

Что еще более важно, вам не нужно использовать ресурсы, работающие на веб-сервере, и беспокоиться о времени безотказной работы / управлении службой, такой как apache.

Однако, если текущее решение достаточно быстрое, нет причин исправлять то, что не сломано.

1 голос
/ 12 октября 2010

Издержки HTTP не очень высоки, если ваш сервер не настроен совершенно необычным образом (или он обрабатывает столько трафика, что эти запросы попадают в очередь за другими HTTP-запросами из внешнего мира).

Если вы говорите о настройке машины (или, я бы сказал, процесса), специально предназначенной для этой цели, которая использует HTTP в качестве протокола передачи, я сомневаюсь, что вы заметите какие-либо заметные задержки при передаче данных. .

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