Inotify优缺点
inotify优点:
监控文件系统事件变化,通过同步工具实现实时数据同步
iontify缺点:
1.并发如果大于200个文件(10-100K),同步会有延迟
2.监控到事件后,调用rsync同步是单线程的(加&并发),sersync多进程同步
Sersync优缺点
sersync的功能:
1.支持配置文件管理
2.真正的守护进程socket
3.可以对失败文件定时重传(定时任务功能)
4.第三方的HTTP接口(例:更新cdn缓存)
5.默认多线程rsync同步
优点:
1.使用C++编写,对linux系统文件产生的临时文件和重复的文件操作会进行过滤,在结合rsync同步的时候,会减少运行时消耗的本地及网络资源,因此速度更快。
2.相比其他项目,sersync配置起来简单
3.使用多线程同步(即可以并发同步多个不同文件),尤其在同步较大文件时,能够保证多个服务器实时保持同步状态
4.Sersync自带出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则每10个小时对同步失败的文件再重新同步
5.Sersync自带crontab功能,只需在xml配置文件中开启,即可按预先的配置,隔一段时间整体同步一次
6.Sersync自带socket与http的协议扩展,可以满足有特殊需求的公司二次开发。
缺点:
sersync有重传机制(内置的定时任务),但是只重传一次,如果重传失败就会清空重传队列,即清空/tmp/rsync_fail_log.sh文件。这样就会造成sersync服务恢复正常后(即可以同步文件),数据同步的两个服务器数据不一致的现象。因为,/tmp/rsync_fail_log.sh文件为空,而sersync只对发生变化的文件做实时同步(ps:sersync默认每隔十个小时做一次完整的数据同步)。
高并发数据实时同步方案
1.inotify(sersync)+rsync,是文件级别的
2.dtbd文件系统级别,文件系统级别,基于block块同步,缺点:备节点数据不可用
3.第三方软件的同步功能:mysql同步、oracle、mongodb
4.程序双写,直接写两台服务器
5.通过业务逻辑解决:读写分离,备读不到,读主
6.NFS集群(双写主储存,备存储用inotify(sersync)+rsync,备没有找主解决延迟问题)