经过这几天的研究和试验,终于为之前的系统设计了一套文件监控调度的结构。
这次功能的难点有两处:
1、监控——在Linux系统中的文件实时监控
2、调度——不同主机间的高速文件传输
监控功能的核心是基于Linux 2.6.13以上内核新增的inotify特性,通过对开源命令行工具inotify-tools进行封装调用,来实现对文件系统的监控。
调度功能的核心是基于Socket的数据传输,加上文件的I/O操作,来实现主机间的文件传输。之前也考虑了其他方法,例如ftp、scp等。但这些现成的工具对于这套系统应用中来说,都些自己的弊端,索性不如自己使用socket来从底层实现。目前不知道实际应用中性能怎么样,会不会造成瓶颈,有待后期压力测试。
下面是文件监控调度部分的结构图
目前测试Demo已跑通,接下来要做的是进一步完善,扩展性、可操作性等,以及最后的性能测试。
附:文件监控调度部分在系统中的位置