zoukankan      html  css  js  c++  java
  • 数据同步方案(附Java源码)

    一.问题背景
    经常碰到要同步数据的情况,而系统自带的复制功能又不能实现增量同步,每次都要做全量复制,发生异常情况后只能重头再来,非常麻烦,优其是对那种大文件的处理,更是耗时。
    二.解決方案
    1.计算源目录数据指纹
    2.计算目标目录数据指纹
    3.对比指纹数据,找出差异项,得到需要添加,删除或更新的文件列表,计算出需要更新的数据大小
    4.挨个同步差异项,如果碰到大文件,则缓存其指纹数据到目标文件夹中,供下次同步数据时使用
    三.数据指纹说明
    数据指纹顾名思义,就是对某一文件夹或文件的唯一标识,其格式为:
    文件相对路径+:(分隔符)+修改日期+:+数据长度+:+內容指纹
    內容指纹是由多个内容块的md5组成
    内容块就是对大文件进行分割处理,每次比较数据,最小的同步对象就是內容块,避免对整个文件做处理,也是实现增量同步的关健点
    四.源码下载
    源码:https://github.com/xxonehjh/file-sync
    可执行文件:fileSync.jar
    使用说明:java -jar fileSync.jar 源目录 目标目录

  • 相关阅读:
    【Scrum】2.18
    【scrum】2.22
    绿色软件 Vs 安装软件
    【Scrum】2.21
    【scrum】2.15
    读《design pattern》有感
    让广告再播一会儿~
    Qt::日志处理
    终于在博客园开通了
    惹毛程序员的十件事
  • 原文地址:https://www.cnblogs.com/xxonehjh/p/4461304.html
Copyright © 2011-2022 走看看