应用之间的文件传输

时间:2018-06-05 16:38:27

标签: python-3.x sftp message-queue messaging

我们正在构建一个Python应用程序,以便从另一个应用程序接收文件,处理收到的文件并将处理后的文件发送回该应用程序。

对于文件传输,我们正在考虑选项SFTP和消息队列。这是我们的要求

  1. 安全传输文件
  2. 确认文件并通知发件人应用程序任何失败
  3. 对文件处理请求进行负载平衡
  4. 能够验证发件人应用程序发送的文件的状态
  5. 根据这种情况SFTP或消息队列,您认为哪种更适合?我知道每个人都有自己的优点和缺点,但想要获得一些见解,并找出是否有人被忽视

1 个答案:

答案 0 :(得分:0)

消息驱动系统几乎完全取决于其经纪人的质量和可靠性,而且由于我没有QPID经纪人的经验,所以我无法对该决定的关键方面发表评论。但是,Qpid使用AMQP,如果您遇到选定代理的问题,切换到另一个代理不应该过于复杂。

现在已经不在了,让我们来看看你的要求。在我看来,你的要求主要是"自然"良好的消息传递系统的属性,因此您可以正常工作,可靠地实现您的需求,而无需在文件传输协议之上层叠机制。

  • 安全传输文件
如果正确实施,AMQP和SFTP可能与安全性相当

  • 确认文件并通知发件人应用程序任何失败

几乎自动使用适当的QPID传递保证模式,通过sftp进行混乱。

  • 对文件处理请求进行负载平衡

通过让所有消费者都连接到同一个队列,避免双重消费以避免消息丢失的方式也很容易,只需sftp即可。

  • 能够验证发件人应用程序发送的文件的状态

并非100%确定您的意思,但AMQP有机制确保发件人确切知道某个消息已被代理正确接受,并且文件已被接收方正确接收和处理(手动)确认模式)。

尚未提及的一个论点是高可用性:消息代理是许多企业处理链的关键要素,具有广泛的高可用性功能,可以避免停机和消息丢失。