我们有一个Windows 2016 Server
用作下载服务器的 VPS。用户通过 URL 请求文件并从中下载。我使用 asp.net 作为 Web 应用程序,使用 IIS 作为 Web 服务器。
现在,从开始到现在已经 2 年了,下载请求的数量增加了,我担心一台服务器可能无法同时处理所有请求。
现在我想将服务器数量增加到 3 台或更多,但我不知道如何处理该服务器的负载平衡和容错请求。
经过一番研究,我发现Apache Hadoop
这可以帮助我实现此目的。
它能为我的问题写出解决方案吗?目前中型公司(不是 GoogleDrive 或 DropBox)使用什么技术?
答案1
如果你只需要简单且免费的负载平衡,不需要容错和会话亲和性,DNS 循环在您的 2 到 3 个下载服务器上将是一个足够的解决方案
实现起来也相当简单,因为你只需要添加一个指向第二个服务器 IP 地址的额外 DNS 条目“www.mydomain.com”
主要缺点:
- 无容错能力:无法检测某个服务器是否不可用
- 无会话亲和性:客户端可以在浏览过程中从一台服务器切换到另一台服务器(快速浏览一下,下载服务器上没有问题)
- 当你更改 DNS 配置时,公共 DNS 复制会出现延迟(但你可以使用 DNS 条目上的较小 TTL 值来限制这种情况)
相反,如果你需要容错,那么可以使用负载平衡解决方案,例如HAProxy,它可以在 TCP 和 HTTP 级别进行负载平衡。您可以将其安装在专用于该角色的服务器上
您还可以使用 DNS 流量管理器(例如 Azure DNS 或 F5 GTM),它可以监控每台服务器的可用性。但它们的成本很高,更适合大型地理分布的应用程序(在不同国家/世界地区)