前言
客户要求做了负载均衡,用nginx做完负载均衡后发现文件没有同步,需要做一下文件同步。
本来考虑通过挂载实现,但是这样的话多台服务器负载均衡意义就比较小了,如果主服务器挂掉了,其它的服务器照样不能用。我们存的文件是word和excel,也考虑过使用elasticsearch进行存储,这样不需要考虑服务器的问题,es是单独另外维护的。还考虑过双向挂载,但是这样都需要改代码,我们负责这一块的java开发不太熟悉es相关的包。于是就用了rsync+inotify的方式进行文件双向同步
参考文章
https://www.cnblogs.com/murry/p/11942297.html
https://mp.weixin.qq.com/s/EWxLBHxK-Y9XjhnNDrjtag
原理
脚本原理很简单,使用 inotify 来监视路径下的文件读写操作,当创建、更新、删除等操作进行后,会触发inotify的检测,然后调用rsync命令进行远程文件同步。
注意事项
安装步骤主要是看参考文章里的两篇连接做的。等有时间我再整理一下写一下各个关键参数的含义。这里提一下一些参考文献没有讲过的注意事项。
不可以进行多线程的同步删除操作!
我们的业务刚好不需要进行删除操作,因此无所谓,可以使用这个方法。如果有需要多线程删除操作的人