Передача файлов между приложениями - PullRequest
0 голосов
/ 05 июня 2018

Мы создаем приложение Python для получения файла из другого приложения, обработки полученного файла и отправки обработанного файла обратно в это приложение.

Для передачи файла мы рассматриваем параметры SFTP и очередь сообщений.Ниже приведены наши требования

  1. Безопасная передача файлов
  2. Подтверждение файла и уведомление приложений-отправителей о любых сбоях
  3. Баланс загрузки запросов на обработку файлов
  4. Чтобы иметь возможность проверить состояние файла, отправленного приложением-отправителем

Как вы думаете, что лучше подходит для данного сценария SFTP или очереди сообщений?Я знаю, что у каждого есть свои достоинства и недостатки, но я хотел получить некоторое представление, а также выяснить, упускается ли что-то из виду

1 Ответ

0 голосов
/ 05 июня 2018

Системы, управляемые сообщениями, почти полностью зависят от качества и надежности их брокера, и, поскольку у меня нет опыта работы с брокерами QPID, я не могу комментировать этот важный аспект решения.Однако Qpid использует AMQP, и если у вас возникнут проблемы с выбранным брокером, переключение на другого не должно быть слишком сложным.

Теперь это не так, давайте посмотрим на ваши требования.На мой взгляд, ваши требования в основном являются «естественными» свойствами хорошей системы обмена сообщениями, поэтому вы получаете правильно работающие, надежные реализации ваших требований без необходимости наложения механизмов поверх протокола передачи файлов.

  • Безопасная передача файлов

AMQP и SFTP, вероятно, вполне сопоставимы с точки зрения безопасности, если они правильно реализованы

  • Подтвердите файл и уведомите приложения отправителя о любых сбоях

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

  • Балансировка нагрузки запросов на обработку файлов

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

  • Чтобы иметь возможность проверить состояние файла, отправленного приложением отправителя

Не уверен на 100%, что вы имеете в виду, но AMQP имеет механизмы, гарантирующие, что отправитель знаетс уверенностью, что сообщение было правильно принято посредником и что файл был правильно получен и обработан получателем (режим подтверждения вручную).

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

...