我现在有一个网站,目前正在使用 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
高血压