实现文件增量同步

目介绍

本功能采用的软件架构C/S模式,基于netty+Mybatis开发,采用分模块的方式便于开发和维护。

功能

利用滚动算法实现了两个文件夹资源差异分析,生成差异文件,进行同步,同时利用DB来实现对加密信息进行存储,存放最后一次加密结果,用于下次同步时比对文件是否存在改动,以及防止没必要的重复加密,对应两个文件夹差异不大的情况,提高了同步效率和减少了服务端与客服端文件资源传输量

数据表设计方案

实现文件增量同步

同步场景(服务器A 客户端B)

1. 单向
graph LR
B --> A
B → A
1.如果B存在b文件,但A没有此文件,将B的b文件以全量的形式同步至A中
2.如果B存在b文件A也存在a文件,但B对b文件进行了改动,此时将B的b文件以增量的方式同步至A中
graph LR
A --> B
A → B
1.如果A存在a文件,但A没有此文件,将A的a文件以全量的形式同步至B中
2.如果A存在a文件B也存在a文件,但A对a文件进行了改动,此时将A的a文件以增量的方式同步至B中
2. 双向
graph LR
B --> A
A --> B
B→A
A←B
1.如果A、B都存在a文件,A、B都对a文件同一个地方进行了修改,将A B的a文件差异部分进行合并,并将 差异部分合并至A B的a文件中,保证A、B的a文件内容一致,此时会留下A、B对a文件改动的冲突部分,由用户决定保留差异
2.如果A、B都存在a文件,A、B都对a文件不同地方进行了修改,将A、B的a文件差异部分进行合并,并将差异部分合并至A B的a文件中,保证A、B的a文件内容一致

思路

实现文件增量同步

使用教程

服务端:

Java -jar server.jar -mode server -port 8000 -filePort 9000

客服端:

java -jar client.jar -mode client -clientPath "G:/test_sync/client" -host 127.0.0.1 -serverPath "G:/test_sync/server" -port 8000 -filePort 9000

私库地址:https://Gitee.com/zhangmuye/Linux-team/tree/master/

实现文件增量同步


原文始发于微信公众号(行走318川藏线):实现文件增量同步

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/20915.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!