我对分布式系统了解不多。我目前在 Windows 服务器上托管一个网站,我想将负载平衡到 2-3 台服务器上。但我脑子里有一些问题,我想知道我需要做些什么来解决它们。
1- 会话持久性。我考虑过使用开源的 nginx,但发现实现粘性会话的唯一方法是 ip_hash,这会导致服务器之间的分布不均匀。我不想要这个,有没有适用于 Windows 的免费替代方案,允许不使用 IP 哈希实现粘性会话?
2- 更新和下载文件。当我需要更新/复制/创建文件时,是否需要在所有服务器上执行此操作?有没有更简单的方法?
答案1
- 当您拥有许多用户时,IP 哈希将在统计上为您提供跨服务器几乎均匀的分布。我建议继续使用 ip_hash 进行粘性会话。这是最简单、最可靠的方法。
或者,您可以将会话存储在 memcached 或任何其他非 SQL 数据库中,这样您就不需要关心会话坚持了。
- 没有更简单的方法,但有更自动化的方法,可以减少手动工作。您可以使用存储库自动执行此操作并远程执行 PSExec 或 WMI 等命令。
用户上传的文件必须同步到所有服务器,或者从所有服务器可访问的网络位置上传并提供。