服务器之间实时双向同步有什么较好的解决方案?


如题。
使用rsync+inotify或者是sersync2的话实现单向同步,但是如果双方同时充当server/client的话,个人觉得这样子会有问题,A服务器修改/新建/删除文件rsync事件到B之后,B是否会再将事件rsync到A呢?
网上还有一个unision的方案,但是好像是不会同步文件内容?就是说如果A、B服务器有同名文件如果都做了修改的话不会再互相同步。
所以想咨询下各位别的方案,谢谢。

rsync 实时同步

东方D某笨蛋 9 years, 8 months ago

rsync+inotify 做双向同步,之前我也有过你的顾虑,会不会导致死循环,但你可以通过排除同步临时文件(..开头,--exclude-from=your_rsync_exclude.lst)来避免这个问题,这个方案我一直用在正式环境中。你可以参考这篇文章 http://segmentfault.com/blog/seanlook/1190000002427568

unision双向同步没有部署过,之前又看到文章说如果两头同时修改了同一文件,此时会提示你怎么操作。

其他方案我目前还不曾发现

奥巴马·本拉登 answered 9 years, 8 months ago

猜测楼主运营的是一个论坛,那么访问量非常小的情况下,例如一分钟一次,两个inotify+rsync可以解决问题,访问量大的话,就必须得把东西独立出来了,数据库要用单独的数据库服务器,论坛贴图也是。

手动操作的话,也可以用inotifywait写daemon脚本,delete,save,modify,create事件都触发操作。不过有点麻烦就是了。

bisesy answered 9 years, 8 months ago

你要双向同步的目的是啥?

许愿-六芒星 answered 9 years, 8 months ago

Your Answer