# 一、文件传输协议
# FTP
FTP File Transfer Protocol 文件传输协议
文件传输协议FTP是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP。 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
# SFTP
SFTP SSH File Transfer Protocol 安全的文件传输协议
SFTP(SSH File Transfer Protocol,也称 Secret File Transfer Protocol)是一种安全的文件传输协议,一种通过网络传输文件的安全方法;它确保使用私有和安全的数据流来安全地传输数据。
# FTP与SFTP的比较
# 1)相同
SFTP 和 FTP非常相似,都支持批量传输(一次传输多个文件),文件夹/目录导航,文件移动,文件夹/目录创建,文件删除等。
# 2)差异
但还是存在着差异,下面我们来看看SFTP和FTP之间的区别:
安全通道
FTP 不提供任何安全通道来在主机之间传输文件;
而SFTP协议提供了一个安全通道,用于在网络上的主机之间传输文件。
使用的协议
FTP使用 TCP/IP协议。
而SFTP是SSH协议的一部分,它是一种远程登录信息。
链接方式
FTP使用TCP端口21上的控制连接建立连接。
而SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
安全性
FTP密码和数据以纯文本格式发送,大多数情况下是不加密的,安全性不高。
而SFTP会在发送之前加密数据,二进制的形式传递,是无法 "按原样" 阅读的,安全性较高。
# 二、文件同步中间件
# 背景
应用平台中,都以文件方式在各系统间进行批量数据交换。
目前的传输方式,主要是应用程序调用FTP工具来实现,操控方式以编程和脚本调用为主。
FTP方式简单易用,小规模应用时,可以满足基本的传输功能;但在大型、众多关键业务系统的应用场景中,面临着容易发生性能瓶颈、安全性低、难于监管等问题。
# 功能实现
可配置化
多路数据传输,每路传输周期频次不尽相同,传输规则方式进行配置化设置。
崩溃恢复机制
当某一路数据传输过程中,由于某种原因而崩溃,则必须能够在不重新启动整个系统的情况下恢复它。
传输速率平衡
多路数据传输,一定不能有一路或其中的一部分同步,而另一路则要晚10小时。