应用程序之间的文件传输
File transfer between apps
我们正在构建一个 Python 应用程序以从另一个应用程序接收文件、处理接收到的文件并将处理后的文件发送回该应用程序。
对于文件传输,我们正在考虑选项 SFTP 和消息传送 queue.Below 是我们的要求
- 安全传输文件
- 确认文件并通知发件人应用程序任何失败
- 对文件处理请求进行负载平衡
- 能够验证发件人应用程序发送的文件的状态
在这种情况下,您认为 SFTP 或消息队列哪个更适合?我知道每个人都有自己的优点和缺点,但想获得一些见解,并找出是否有什么被忽视了
消息驱动系统几乎完全取决于其代理的质量和可靠性,由于我没有使用 QPID 代理的经验,因此我无法对决策的这一关键方面发表评论。但是,Qpid 使用 AMQP,如果您 运行 遇到所选代理的问题,切换到另一个应该不会太复杂。
至此,我们来看看您的要求。在我看来,您的需求主要是 "natural" 良好消息传递系统的属性,因此您可以正常工作、可靠地实现您的需求,而无需在文件传输协议之上添加机制。
- 安全传输文件
如果实施得当,AMQP 和 SFTP 的安全性可能相当
- 确认文件并通知发件人应用程序任何失败
几乎自动为 QPID 使用适当的交付保证模式,通过 sftp 做很麻烦。
- 对文件处理请求进行负载平衡
让所有消费者都连接到同一个队列也毫不费力,以一种避免消息丢失的方式避免双重消费仅用 sftp 是很难做到的。
- 能够验证发件人应用程序发送的文件的状态
不能 100% 确定您在这里的意思,但 AMQP 有机制确保发送方确定消息已被代理正确接受,并且文件已被接收方正确接收和处理(手动确认模式)。
尚未提及的一个论点是高可用性:消息代理是许多企业处理链的关键要素,具有广泛的高可用性功能,可以避免停机和消息丢失。
我们正在构建一个 Python 应用程序以从另一个应用程序接收文件、处理接收到的文件并将处理后的文件发送回该应用程序。
对于文件传输,我们正在考虑选项 SFTP 和消息传送 queue.Below 是我们的要求
- 安全传输文件
- 确认文件并通知发件人应用程序任何失败
- 对文件处理请求进行负载平衡
- 能够验证发件人应用程序发送的文件的状态
在这种情况下,您认为 SFTP 或消息队列哪个更适合?我知道每个人都有自己的优点和缺点,但想获得一些见解,并找出是否有什么被忽视了
消息驱动系统几乎完全取决于其代理的质量和可靠性,由于我没有使用 QPID 代理的经验,因此我无法对决策的这一关键方面发表评论。但是,Qpid 使用 AMQP,如果您 运行 遇到所选代理的问题,切换到另一个应该不会太复杂。
至此,我们来看看您的要求。在我看来,您的需求主要是 "natural" 良好消息传递系统的属性,因此您可以正常工作、可靠地实现您的需求,而无需在文件传输协议之上添加机制。
- 安全传输文件
如果实施得当,AMQP 和 SFTP 的安全性可能相当
- 确认文件并通知发件人应用程序任何失败
几乎自动为 QPID 使用适当的交付保证模式,通过 sftp 做很麻烦。
- 对文件处理请求进行负载平衡
让所有消费者都连接到同一个队列也毫不费力,以一种避免消息丢失的方式避免双重消费仅用 sftp 是很难做到的。
- 能够验证发件人应用程序发送的文件的状态
不能 100% 确定您在这里的意思,但 AMQP 有机制确保发送方确定消息已被代理正确接受,并且文件已被接收方正确接收和处理(手动确认模式)。
尚未提及的一个论点是高可用性:消息代理是许多企业处理链的关键要素,具有广泛的高可用性功能,可以避免停机和消息丢失。