本篇文章为大家展示了怎么理解Sersync服务器同步程序项目与设计框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
本项目利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。
,
目前使用的比较多的同步程序版本是inotify-tools,另外一个是谷歌开源项目Openduckbill(依赖于inotify-tools),这两个都是基于脚本语言编写的,其设计思路同样是采用inotify与rsync命令。相比较上面两个项目,本项目优点是:
,
1. sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(我稍后会提到),所以在结合rsync同步的时候,节省了运行时耗和网络资源,因此更快。
,
2。相比较上面两个项目,sersync配置起来很简单:在http://code.google.com/p/sersync/downloads/list处下载源码(分32版为本,与64位版本),其中本目录下已经有我编译好的2进制文件,配合本目录下的xml文件直接使用即可。
,
3。另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
,
4。本项目自带出错处理机制,通过失败队列对出错的文件重新出的错,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
,
5。本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。
,
6。本项目自带套接字与http协议扩展,满足您二次开发的需要。
,
基本架构: