通用FTP Client模块设计与实现
需求来源
业务系统通过Ftp Client定时接收客户的任务,由于不同的任务对应的实际业务处理不一样,因此每个任务放置在 FTP Server 对应的不同目录中。
实现策略
实现一个FTP Client
1)定期地取FtpServer中指定的目录下的所有文件到本地。 本地启动一个监控系统 监测指定目录的文件查到后做相应的处理。
2)将本地某个目录下的文件上传到FTPServer某个目录中。 本地将业务数据写入到业务目录中,通知 FTP Client上传到FTP Server中。将
由于上传业务频率并不高,因此不使用定时器的而改用通知的模式,从而减少对系统资源的占用。
优势
将FTP模块和具体的业务系统解耦。
对该模块的性能以及质量是可测试的。
劣势
定时任务会占用系统资源。
上传业务由于使用通知模式,对于一次连接不能保证上传最多的文件,最糟糕的情况是一个文件一个连接,从而导致上传效率低下。
设计第一稿
代码实现