我正在尝试弄清楚如何对应用程序(例如 WordPress)进行负载平衡。我的服务器阵列如下所示:
- 负载均衡器。
- 数据库服务器。
- 2 个或更多应用服务器。
大多数(如果不是全部)内容都将存储在数据库中,因此内容不会成为问题,并且部署也将通过让两台服务器从远程 GIT 存储库克隆来解决,但是如果有人将图像上传到一台服务器会发生什么?它将如何同步到另一台服务器?
我猜我可以使用 rSync 来实现这一点,但我觉得这有点过时了。任何建议都将不胜感激。
答案1
答案2
如果用户上传的数据未被缓存,和/或存储在集中的网络位置,那就没有问题。
缓存数据肯定是一个问题。至少有几种通用方法。
与特定 Web/应用服务器保持会话亲和性(“粘性”会话)。这实质上使无状态 Web 应用“有状态”,并且该应用现在具有隐含的连接超时。通常,通过负载平衡器具有超时,而 Web 服务器具有连接超时和/或 http 保持活动超时。负载平衡器超时可能是一个更难解决的问题,因为它们的资源可能比应用/Web 服务器更有限。
如果可行的话,请在应用程序中内置一种机制,以便在合作伙伴 Web/应用程序服务器之间同步创建/修改/删除的数据。
中间缓存解决方案(例如 Azure AppFabric)可能不可行。许多缓存大数据的应用程序在使用中间缓存时无法实现相同的性能,尽管这需要通过测试来确定。