保持上传的文件在多个服务器之间同步 - LAMP

保持上传的文件在多个服务器之间同步 - LAMP

我现在有一个网站,目前正在使用 2 台服务器,一台应用程序服务器和一台数据库服务器,但是应用程序服务器上的负载正在增加,所以我们将添加第二台应用程序服务器。

我的问题是网站让用户上传文件到服务器。我如何在两个服务器上获取上传的文件?

我不想将图像直接存储在数据库中,因为我们的应用程序已经是数据库密集型的了。

有没有办法让服务器相互同步或者我可以做些什么其他事情?

任何帮助,将不胜感激。

谢谢

答案1

这个问题很难回答,因为它完全取决于您的应用程序。听起来您有一些核心应用程序架构问题,这些问题无法在 ServerFault 问题中得到解决。话虽如此,您可以采取一些步骤来解决您描述的问题。

在这种情况下,最合适的做法是将文件共享拆分为单独的服务。如果您的网络可以让文件“几乎同时”出现在任何地方,请不要复制文件。您可以通过 NFS/CIFS 或适当的存储协议(如 iSCSI)执行此操作。在适当的目录中安装为本地存储。根据您的网络性能和存储需求,这可能会使页面加载时间增加几毫秒,而这几乎无法察觉。

答案2

我可以想到不同的解决方案。

您可以通过 NFS 或 iSCSI 驱动器共享文件。——我怀疑这是否能提供良好的性能。

您可以将文件放在单独的服务器上并像 CDN 一样使用它。 - 这是一种有利的方式,因为它允许浏览器异步下载资产。

你可以使用真正的 CDN,例如云端

答案3

csync2 是您的解决方案:http://oss.linbit.com/csync2/

它专为解决您的问题而设计。也许您读过这篇博文: http://thuannvn.blogspot.de/2010/01/csync2-is-so-cool.html

高血压

答案4

另一个答案可能是使用一款名为 BTSync 的软件,它非常容易安装和使用,并且可以让您轻松地在您需要的任意数量的服务器上保持文件同步。只需 3 个终端命令即可安装,而且非常高效。

看看这里


和这里

相关内容