假设我有一台带宽为 1Gbit 的服务器,并且我提供静态文件。添加另一台相同的服务器并使用负载平衡器(可能在第一台服务器上运行)会使带宽加倍吗?或者因为它是从第一台服务器路由的,它会最大化在 1Gbit?如果是这种情况,我该如何增加在云提供商上运行的服务器的可用带宽?
此致,
亚历克斯
假设我有一台带宽为 1Gbit 的服务器,并且我提供静态文件。添加另一台相同的服务器并使用负载平衡器(可能在第一台服务器上运行)会使带宽加倍吗?或者因为它是从第一台服务器路由的,它会最大化在 1Gbit?如果是这种情况,我该如何增加在云提供商上运行的服务器的可用带宽?
此致,
亚历克斯
假设您的负载均衡器(无论它放在哪里)和服务器都是 1 Gbit,那么最大吞吐量只能是 1 Gbit,因为一切都通过负载均衡器提供服务。
负载平衡器,如果与两台服务器分开,则提供故障转移并在服务器之间分配处理负载(用于提供静态文件的负载将是最小的)。
为了增加出站带宽(注意,不是单个客户端),需要使用类似基于 DNS 的解决方案,将静态资产的一个主机名解析到两个不同的服务器。这不会为单个客户端提供超过 1 Gbit 的带宽,但是当至少有一个客户端连接到每个 1 Gbit 服务器时,这将允许两个 1 Gbit 服务器在满负载时饱和。如果您自己做,故障转移会更复杂,因为如果服务器关闭,您需要删除 DNS 条目。
这就是 Akamai / AWS CloudFront / 许多其他内容交付网络 (CDN) 的工作方式以及它们擅长的地方,尤其是在像本用例中那样提供静态内容时。动态和事务性内容是另一个对话。
如果您确实想自己实施具有故障转移的 DNS 解决方案,那么您基本上是在构建自己的小型 CDN。您可以自己滚动,或者也有 DNS 托管提供商可以将其作为其服务的一部分。
对于您提供的示例,不,您不会看到任何带宽增加。您的入站流量将通过您的负载均衡器(假设 1Gbit NIC)进行路由,并在两个成员服务器之间拆分,每个成员服务器最多获得约 500MB/s 左右的流量。
在看到任何增加之前,您需要增加网关 NIC 的容量。