一张图看懂「负载均衡」:一个收银台排长队,那就多开几个
双十一零点,几亿人同时冲进来。如果所有请求都砸到一台服务器上,它早炸了。
现实世界的办法很简单:超市开多个收银台、医院开多个挂号窗口。负载均衡(Load Balancer) 干的就是这件事——把海量请求分摊到多台服务器上。
一、它长什么样
想象一个路口有个“交通指挥”:所有车(请求)先到他这儿,他再看哪条道(服务器)不那么堵,把车放过去。
没有它:一台机器累死,其他闲着;它一挂,全站瘫痪。 有它:流量被摊开,一台挂了还能把活儿分给别人,高可用 + 可扩容。
二、怎么决定“分给谁”
常见的几种分发策略:
- 轮询:1、2、3、1、2、3……挨个来,简单公平,但不管谁忙谁闲。
- 最少连接:谁手头活儿最少就给谁,更照顾忙闲不均。
- IP 哈希:同一个用户的请求总落到同一台机器,方便保持登录状态(会话粘滞)。
- 加权:机器有强有弱,强的多分点(权重高)。
三、它在哪几层干活
- 四层(L4):看 IP 和端口就转发,快,像按车道放行。
- 七层(L7):能看懂“你要访问 /api 还是 /static”,按内容分流,灵活。
四、和你的关系
你用的每個大网站背后都有负载均衡:你感知不到具体是哪台机器在服务你,只知道网站“一直能打开”。做架构时,它通常是第一道大门。
一句话:负载均衡就是“别让一个人扛所有活”,把压力分给一群人,既扛得住高峰,又不怕个别掉队。