基于rsync同步算法的文件同步系统JAVA实现(一)——项目介绍
2013-08-22 22:44
851 查看
项目主要功能:
用java实现的类似rsync项目的文件同步:A拥有不完整文件file_half,B拥有完整文件file_total,A向B发送不完整文件的校验码信息,B利用完整文件进行分析后返回差异数据块,A收到差异数据块后与不完整文件file_half进行重组形成完整文件file_total_copy。优点:
同步时传送的文件内容只是差异文件,则可以减少传输的数据,减少同步时间(主要减少了网络传输时间),当差异块相对文件大小很小时,优势尤为突出。还有附加的优点就是支持断点传输,查看差异部分(这有点像svn)。主要原理:
1.在α端将不完整文件A分割成相同大小的数据块。2.对每个数据块进行两种校验(滚动校验和md4)
3.将校验结果发送给拥有完整文件B的β端
4.β通过搜索文件B的所有大小为S的数据块,来寻找与文件A的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
5.β生成差异文件块和相关信息并发送给α,α利用差异块和相关信息重新生成完整文件B’。
项目碰到的难点:
1.数据量大,测试调试困难。2.需要对字节级别的数据进行操作。
3.分析差异数据块的算法设计与优化。
4.设计哪些数据报,怎么设计。
5.错误处理。
6.如何利用数据报控制客户端和服务端的程序运行和交流。
7.网络环境复杂。
项目进度与需要完善的问题:
1.核心同步在单机上(利用127.0.0.1环回测试)已经实现。2.暂时只支持一次操作,用户体验较差。
3.程序运行时客户端和服务器交互能力较差。
项目主要技术:
java语言,javafx界面,rsync算法参考项目测试界面:
项目核心时序图:
相关文章推荐
- 基于rsync同步算法的文件同步系统JAVA实现(一)——项目介绍
- 基于rsync同步算法的文件同步系统JAVA实现(二)——校验码的生成
- 基于rsync同步算法的文件同步系统JAVA实现(三)——校验码哈希表的建立
- 基于rsync同步算法的文件同步系统JAVA实现(五)—— 重组数据块
- 基于rsync同步算法的文件同步系统JAVA实现(四)——分析并发送不匹配数据块
- java开发系统内核:实现基于FAT12文件系统的dir命令
- linux下基于rsync + find命令实现文件同步机制
- linux系统中rsync+inotify实现服务器之间文件实时同步
- 小项目:基于Struts框架的员工管理系统的java实现
- linux系统使用Rsync+sersync实现文件实时同步
- 基于差异的文件同步算法-The rsync algorithm
- 基于java最短路径算法公交查询系统的设计与实现
- Centos7.0系统下Rsync+sersync实现多文件数据实时增量同步 推荐
- Rsync实现Windows系统与Linux文件同步
- 基于差异的文件同步算法-The rsync algorithm
- 基于cron、rsync和ssh免密码登录实现Linux系统间自动同步~
- linux系统中rsync+inotify实现服务器之间文件实时同步
- 基于rsync+inotify实现文件实时同步
- Java 开发基于Zookeeper,Spring,vue.js的高并发多用户模块化微信商城系统(一) 项目介绍
- linux系统中rsync+inotify实现服务器之间文件实时同步