在我的情况下,我有2个EC2实例,需要实时同步它们之间的文件。 我可以用rsync做这个吗? 任何人都可以请build议如何安排一个rsync?
不要尝试同步文件系统。 直接读写你的文件到S3。
同步文件系统为您的应用程序增加了额外的复杂程度,这是不必要的。 如果由于某种原因文件系统的同步失败,您的应用程序将开始失败。
保持简单:构build你的应用程序来有效地使用S3。
你有很多select:
如果是Linux,我会build议在需要访问文件的节点上使用NFS文件系统/挂载 。 你有没有考虑过这个?
您可以使用一些文件同步工具,如rsync或unison plus incrontab。
如果您的实例对这些文件进行并发写入访问,请考虑使用能够传播锁的分布式文件系统。 它不需要调度,而且不需要担心更新冲突(即在同步之前两个实例上的文件已经更新的情况)。
GFS2可能会或可能不适合您的需求 – 检查出来。
使用单一文件系统是不好的,你在系统中引入单点故障。 从头开始做好架构devise是扩展应用程序的关键。 根据本地磁盘存储从来就不是好的select。 如果你正在编写的系统将跨多个节点工作,你应该考虑使用一些TCP服务,任何节点都可以通过networking访问。
另一方面,如果你在多个系统上有服务,而且这些系统将会在后端负载平衡器后面,假设你需要共享的文件只与给定后端的访问者相关,那么你可以尝试使用粘性返回的访问者总是碰到相同的后端。
但是,如果这些方法都不适用于您,那么将本地文件交叉同步到多个服务器将是一个难以解决的问题,如ewwhite所build议的那样,NFS文件存储看起来只有理智的select。