【问题标题】:File transfer between apps应用程序之间的文件传输
【发布时间】:2018-11-15 05:35:17
【问题描述】:

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

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

  1. 安全传输文件
  2. 确认文件并通知发送方应用程序出现任何故障
  3. 负载平衡文件处理请求
  4. 能够验证发件人应用程序发送的文件的状态

在这种情况下 SFTP 或消息队列,您认为哪个更适合?我知道每个人都有自己的优点和缺点,但想获得一些见解,并找出是否有被忽视的地方

【问题讨论】:

  • 3 看起来像是一个明确的支持消息队列的参数。你在考虑什么消息队列系统?
  • 看qpid

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


【解决方案1】:

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

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

  • 安全传输文件

如果实施得当,AMQP 和 SFTP 的安全性可能相当相似

  • 确认文件并通知发送方应用程序出现任何故障

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

  • 负载平衡文件处理请求

通过将所有消费者附加到同一个队列也毫不费力,以一种避免消息丢失的方式避免双重消费,仅使用 sftp 很难做到这一点。

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

不是 100% 确定您在这里的意思,但是 AMQP 具有确保发送者确定地知道消息已被代理正确接受,并且文件已被接收者正确接收和处理的机制(手动确认模式)。

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

【讨论】:

    猜你喜欢
    • 2019-02-15
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2018-05-05
    • 2017-03-18
    相关资源
    最近更新 更多