有使用 MQ 文件传输版本的经验吗?

有使用 MQ 文件传输版本的经验吗?

我们有几个在服务器之间移动文件的流程 - SFTP、FTP、SCP;Windows、Linux、AIX;有一个工作流组件(通常需要一个带有文件名和哈希值的控制文件来移动一批相关文件)。该操作通常在我们的服务器上启动以获取文件,因此我们需要确保它们已完成写入。

我们有一些自己开发的脚本来执行此操作,但它们并不总是正常工作,而且这样进行故障排除、维护和日志审查并不容易。有很多服务器,我们的脚本没有中央日志记录或仪表板/控制台等。

我们正在研究商业产品来实现这一点。有人用过 MQ File Transfer Edition 吗?我们公司的另一个团队正在使用 Aspera,有人对此有什么看法吗?或者还有其他受欢迎的产品吗?

我还不知道我们为此的预算是多少。只是想从其他管理员的角度了解产品空间。


/edit - 在我的情况中,我们将扫描图像的 2 个文件有效负载(一个二进制文件,一个元数据)从不同的来源移动到不同的目的地。我们等待第三个控制文件写入校验和 - 当移动完成后,控制文件将被删除。

源主要是少数 Windows 文件服务器或 Windows SFTP 服务器,它们从扫描过程中接收这些文件。我们还有一些源,它们是 FTP 或 SFTP 服务器,它们从外部方接收相同的有效负载。目标是一组 AIX 服务器,它们将图像导入存档,因此文件也不会保留在目标中。稳健性绝对是我们的主要关注点。

我猜我们每天移动几 GB。(没有集中日志记录,我无法给出更准确的数字。)二进制文件可能平均大约 100 MB,元数据则小得多。

答案1

我没有使用过 MQ 文件传输版本,因此无法对此发表评论。我进行过很多文件传输,包括 EDI、FTP、AS2、FTPS、SFTP、rsync、SCP、aspera、svn 等。最终我的答案取决于您的确切要求。听起来您最关心的是文件传输的可靠性。

首先,我建议对平台、维护和管理进行某种标准化,这听起来就是你正在考虑做的事情。让每台服务器无论操作系统/配置如何,都使用相同的流程将文件传输到节点和从节点传输文件。在不同配置之间进行多次故障排除会使简单的任务变得非常令人沮丧。当我想到可靠性时,我不会想到 Windows,但很多时候根本就没有办法避免它。

虽然我不知道您的确切需求,但我会为您提供一些可能的解决方案,如果您能明确说明您的需求(WAN、LAN、文件大小、每日传输次数、传输的重要性等),我可以为您提供更准确的答案。我过去设置的传输范围从小于 1kb 的小文件到数百 GB 的数据,从不进行传输就不会获得报酬的人到可能永远不会使用的数据,从开放的互联网传输到加密数据,再到加密 VPN 上的加密传输。

您真正想要的是行业中的一个半新术语,称为“托管文件传输”。 http://en.wikipedia.org/wiki/Managed_file_transfer

最后,获取 Gartner Magic Quadrant 报告,查看它并选择满足您需求的供应商。您会在列表中注意到 Aspera,但请考虑 CFI 以满足您的需求。考虑到您正在寻找商业产品,这是您最好的选择。如果您想对我在这个领域的研究有更多了解,请给我发私信或发表评论。

这是我的个性化输入。

集中式 FTP:

这很好,因为 FTP 是通用的,它在很多地方使用,并且在系统间有如此多的支持。许多流行的 FTP 服务器将支持许多身份验证方法和协议。如果您能够将服务器集中到所有节点,那么故障排除就会变得容易得多,当出现问题时,您可以检查服务器日志,或者理想情况下让日志自动通过电子邮件向您报告,如果没有任何问题,很明显是客户端或网络问题。问题是 FTP 并不完美,它很容易失败,并且在处理大量小文件时特别慢。在各个操作系统中,您可能会发现文件命名问题等等。如果您要考虑此解决方案,请使用可以支持简单文件验证的客户端和服务器。 http://en.wikipedia.org/wiki/Simple_file_verification. 用于检查文件的机制正如其名称所示,很简单,并且可以跨多个平台进行检查。有许多服务器支持在文件上传时进行检查,并且可以自动报告文件检查失败的情况,同时检查整个文件集而不是单个文件,还提供要上传的完整结构的百分比。gltfpd 是一种流行的,但请记住,它的配置很麻烦,但一旦设置好,您可能永远不需要再碰它。 http://www.glftpd.com/. Gene6 也很受欢迎

Rsync 文件

我经常在脚本中使用 rsync,我发现它在错误检查方面非常可靠且非常强大。因此,您会发现 rsync 在备份脚本中非常受欢迎。我不知道有多少现成的 rsync 程序,因此您需要为此编写一个解决方案,而且您将再次没有集中日志记录,并且可能会遇到许多相同的问题,但老实说,我发现 rsync 足够可靠,并且对于具有大型文件集和完整性检查的增量传输,这是一种快速而简单的完成任务的方法。

阿斯佩拉

Aspera 的核心技术非常出色,可以实现高延迟、高带宽传输。如果您不通过 WAN 进行传输,也不传输大型数据集,我不推荐使用它。我运行了一个大型 Aspera 部署,它充斥着传输问题和软件错误。如果您正在寻找非常基本的功能,这是一个相当不错的解决方案,但是当涉及到更高级的处理时,请准备好编写自己的脚本来传输数据。该软件似乎更专注于小众企业,而且它们似乎在企业部署中举步维艰。他们其中一款产品的集中日志记录可以解决集中日志记录需求,他们的预处理和后处理也可以满足您的需求,但请记住,您可能最终会为一个半成品解决方案花费大量金钱。我上面提到了 CFI,他们的产品更适合企业,但他们很难提供单一的体验。根据您的需求,不要轻信我的话,亲自试用他们的产品。

版本控制系统

首先我要说的是,这似乎不符合要求,但这是另一种选择。如果您要传输的文件不是事务性的,请考虑将这些文件存储在版本控制系统中。在这种情况下,当需要传输文件时,它会被签入版本存储库,并在需要时在远程端同步。在您需要版本控制和文件可能相互交互以及集中式服务器的情况下,这可能是一个不错的选择。

最后需要注意的是,检查一下 Twitter 使用什么来在其众多节点之间传递配置文件:http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html

我再一次强调,正确的答案是基于您的确切要求的。

希望这对你有帮助。

答案2

我已经为多个客户实施了 WMQ FTE,它肯定能满足您所描述的要求。您可以将其配置为监视控制文件,然后移动数据文件并删除控制文件。它也可以由创建文件的对象发送的 MQ 消息驱动。FTE 代理可以作为客户端连接到 WMQ,因此在小型部署中您只需要一个 WMQ 服务器,并且 FTE 代理可以位于您提到的所有平台上。唯一的例外是 z/OS FTE 代理必须具有本地队列管理器(因为 z/OS 平台没有 WMQ 客户端)。当然,它也适用于临时、用户驱动的传输。

FTE 使用所有非持久性消息和两个代理之间的轻量控制流(当然是通过 WMQ)来确认数据流。假设双方都正常运行,则整个传输都在内存中进行,不会将任何内容写入队列管理器上的磁盘,因此速度非常快。如果一方发生故障,则一旦服务恢复,传输就会从中断的地方继续。两个代理都会对数据和文件进行校验,因此如果源文件或目标文件在中断或传输期间发生变化,传输将中止并显示相应的错误消息。

您可能希望编写的任何自动化脚本都可以使用 Ant 或任何您想要调用的可执行文件来完成,无论是在发送方还是接收方,无论是在传输之前还是之后。例如,我有一个客户,他加密发送到其客户的 SFTP 服务器的文件,然后在文件到达时解密文件。这是通过在出站传输之前和入站传输之后调用 Ant 来运行 GPG 来完成的。

答案3

当我在一家大型保险公司工作时,我们使用连接:直接,用于自动化和管理各种 Windows/Linux/AIX/大型机服务器之间的文件传输(大多数通过 SSL/TLS)。

相关内容