Load Balance

2023-09-09

Load Balance

大家好,我是扶墙老师, 今天跟大家聊聊Load Balance,即负载均衡。

负载均衡主要解决的是处理压力如何分担的问题。 当所有人一拥而入的时候,一台服务器往往会处理不过来,这时候就得增加更多服务器,然后把流量尽可能均衡的分派给不同的服务器来处理,从而减轻整体的处理压力。

负载均衡既有软件方案,也有硬件方案, 软件方案最为典型的就是LVS和Nginx, 硬件方案最典型的则是F5(当然,F5同时也是公司名)。

不管是软件方案还是硬件方案,他们的负载均衡策略常见的也就这么三种:

1 - 固定策略,最典型的就是游戏公司20多年前采用的设置多个游戏服务器入口的策略, 比如游戏服务器1, 游戏服务器2,等等,然后让用户选择使用哪台服务器。 2022年上海健康云的核酸检测服务在多次被压垮之后,也采用了这种20年前的负载均衡策略,开放了多个服务入口;

2 - round-robin策略,即轮询策略,前一个请求我处理,下一个请求你处理,按照顺序来,当大家都处理一遍之后,那就从头再来,脑海里马上能想到的景象就是一条蛇咬住自己尾巴成了一个闭环;

3 - random策略,即随机策略,来的任何一个处理请求,都会被随机的扔给后面某一台服务器去处理。实际上,生产环境用的负载均衡策略基本上都是随机策略,越简单,越可靠,尤其是流量很大的情况,比如早年的淘宝。

云时代,各大公有云厂商都会有自己的负载均衡服务,比如AWS的ELB, 比如阿里云的SLB,等等,而他们背后的原理则都是一样一样的。