我正在尝试弄清楚 facebook/youtube 等网站的负载平衡究竟是如何工作的,但我有几个问题。所以在阅读了很多资料后,我发现负载平衡看起来是这样的:当负载平衡器应该是服务器时,它会在服务器之间分配流量。
我的问题是:如果负载均衡器是单个服务器,将流量分摊到其他服务器,那么像 facebook/youtube 这样的网站如何每秒处理 50,000 多个请求?如果负载均衡器是单个服务器,它不会死机吗?它如何能够路由 10gbps 或更高的流量?此外,这个负载均衡器如何知道视频 XXXX(例如)位于哪个服务器上?
答案1
该图是对负载平衡的初步近似,对于大多数网站来说,这已经足够了。像 google、youtube 和 facebook 这样的网站可以而且确实使用了一些技巧,以下是我迄今为止使用过或计划为另一个大型电子商务网站使用的一些技巧:
- 使用 DNS 将请求分散到多个负载均衡器,甚至多个数据中心
- 结合使用 DNS 和任播 IP 范围/CDn 来在地理上吸引本地流量
- 让最外层的负载均衡器只对更多负载均衡器执行第 4 层平衡,并让这些负载均衡器执行所有必要的第 7 层处理
第 7 层技巧包括:
- 通过 cookie 或 url 将用户与服务器绑定
- 定位内容并适当重定向
- 进一步提高绩效的分析
- 第 7 层的滥用检测和预防
答案2
对于问题的第二部分 - 负载均衡器要么具有最新的数据库,其中包含有关哪个服务器可以处理哪个请求的信息,要么它可能使用来自后端服务器的一些内部重定向消息。