Ruby on rails 用于在应用程序群集中的节点之间共享文件的rsync?

Ruby on rails 用于在应用程序群集中的节点之间共享文件的rsync?,ruby-on-rails,linux,cluster-computing,rsync,nfs,Ruby On Rails,Linux,Cluster Computing,Rsync,Nfs,我有一个在多个负载平衡节点上运行的Rails应用程序。它的功能之一是允许用户上传内容。该内容需要很快(如果不是立即)对所有节点可见 当前,每个节点从NFS服务器装载一个目录,并将上载的内容读/写到该共享位置 如果可能的话,我希望不再使用这个解决方案,而是在本地(每个节点上)存储内容,并定期与rsync服务器同步,以保持所有节点的同步 这合理吗?如果某个文件几乎同时在多个节点上被修改,rsync将如何工作?更改是否会在“服务器”上序列化,而不会导致损坏(即,每个更改仅部分应用,导致文件损坏) 我曾

我有一个在多个负载平衡节点上运行的Rails应用程序。它的功能之一是允许用户上传内容。该内容需要很快(如果不是立即)对所有节点可见

当前,每个节点从NFS服务器装载一个目录,并将上载的内容读/写到该共享位置

如果可能的话,我希望不再使用这个解决方案,而是在本地(每个节点上)存储内容,并定期与rsync服务器同步,以保持所有节点的同步

这合理吗?如果某个文件几乎同时在多个节点上被修改,rsync将如何工作?更改是否会在“服务器”上序列化,而不会导致损坏(即,每个更改仅部分应用,导致文件损坏)


我曾考虑过使用其他共享资源(数据库、redis等),但考虑到这些内容的使用方式,它最好以“原始”形式存在于文件系统中。

使用AWS或其他云存储之类的东西怎么样,或者成本过高?从技术上讲,这是可行的,但这需要更新使用这个Rails服务器的(~300)个移动应用程序,我无法做到这一点。如果我们不得不重来一次,那么我主张在云中托管这些东西。我可以指定一台机器作为“内容服务器”,然后在负载平衡器上创建一个规则,将所有符合特定URL模式的请求发送到该机器。然后,当上传内容时,集群中的节点将其发送到单个“内容服务器”。这其实不是一个糟糕的主意。那么改用AWS或其他云存储之类的东西怎么样?或者成本过高?从技术上讲,这是可行的,但需要更新使用Rails服务器的(~300)个移动应用程序,而我无法做到这一点。如果我们不得不重来一次,那么我主张在云中托管这些东西。我可以指定一台机器作为“内容服务器”,然后在负载平衡器上创建一个规则,将所有符合特定URL模式的请求发送到该机器。然后,当上传内容时,集群中的节点将其发送到单个“内容服务器”。这其实不是个糟糕的主意。