數據同步方案(附Java源碼)


一.問題背景
經常碰到要同步數據的情況,而系統自帶的復制功能又不能實現增量同步,每次都要做全量復制,發生異常情況后只能重頭再來,非常麻煩,優其是對那種大文件的處理,更是耗時。
二.解決方案
1.計算源目錄數據指紋
2.計算目標目錄數據指紋
3.對比指紋數據,找出差異項,得到需要添加,刪除或更新的文件列表,計算出需要更新的數據大小
4.挨個同步差異項,如果碰到大文件,則緩存其指紋數據到目標文件夾中,供下次同步數據時使用
三.數據指紋說明
數據指紋顧名思義,就是對某一文件夾或文件的唯一標識,其格式為:
文件相對路徑+:(分隔符)+修改日期+:+數據長度+:+內容指紋
內容指紋是由多個內容塊的md5組成
內容塊就是對大文件進行分割處理,每次比較數據,最小的同步對象就是內容塊,避免對整個文件做處理,也是實現增量同步的關健點
四.源碼下載
源碼:https://github.com/xxonehjh/file-sync
可執行文件:fileSync.jar
使用說明:java -jar fileSync.jar 源目錄 目標目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM