基于sersync海量文件实时同步

基于sersync海量文件实时同步 

项目需求:最近涉及到数百万张图片从本地存储迁移到云存储,为了使完成图片迁移,并保证图片无缺失,业务不中断,决定采用实时同步,同步完后再做流量切换。在实时同步方案中进行了几种尝试。

方案1:rsync+inotify同步,最先想到的是此方案,先看下脚本
此前在多台服务器间同步代码就用此方法,基本上没问题,因为代码文件数并不多,但这次面对大量小文件时其缺陷暴露了,同步非常耗时,并且没不能做到实时同步。为什么呢?每次新增数据rsync都会对全目录扫描,对比文件差异,并且是全量同步,耗时很长,新增的数据只能等上一次全量同步完再触发同步,这样就没法实时同步,因此此方案最终被我放弃。

方案2:采用sersync,sersync由金山的一位同学开发,实际上是整合了inotify和rsync上做的二次开发,对监听事件进行了过滤,并且同步时只同步单个文件或单个目录,对于数百万的文件或目录比较多的的情况,只用同步单个子目录而不是整个目录,并且支持多线程同步,也就是说可同时同步多个子目录,这样同步效率大大提高,并且做到了实时同步。 

总结:经过实际检验,sersync对我数百万张图片数据做到了实时同步,新增的数据能够立马同步到另一台,最后上百G的图片数据实现了平滑迁移。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值