负载均衡(Load Balancing)是把大量访问请求合理分摊到多台服务器上处理的技术,用于提升网站吞吐量、缩短响应时间并避免单机过载,是解决高并发、高可用问题的核心手段,常见于云服务商的 SLB/CLB 产品和 Nginx 等软件。

| 类型 | 服务器 / 网络架构技术 |
| 工作层级 | 四层(传输层)与七层(应用层) |
| 常见软件 | Nginx、HAProxy、LVS |
| 常见云产品 | 阿里云 SLB、腾讯云 CLB、AWS ELB |
| 主要用途 | 高并发分流、高可用容灾 |
负载均衡(Load Balancing)是一种将网络请求或计算任务分摊到多台服务器、多条链路或多个处理单元上执行的技术,目的是让资源利用更均衡、整体吞吐更高、响应更快,并避免任何一台机器被压垮。
一个网站如果只靠一台服务器支撑,访问量一大就会变慢甚至宕机,而且这台机器一出故障整个服务就中断了。负载均衡的思路是在用户和后端服务器之间加一层「调度员」:用户的请求先到达负载均衡器,再由它按一定规则转发给后面的多台服务器(即服务器集群)中的一台。这样多台机器共同分担流量,单台故障时流量还能自动切到健康的机器上,通过冗余同时换来了性能和可靠性。
负载均衡既可以由专用硬件设备实现(如 F5 等商用设备),也可以由软件实现,后者在互联网公司更为普及,典型代表有 Nginx、HAProxy、LVS 等。各大云厂商也都提供开箱即用的负载均衡产品,如阿里云 SLB/CLB、腾讯云 CLB、AWS 的 ELB 等,用户挂载多台云服务器即可使用。
负载均衡器通常会定期对后端服务器做健康检查,发现某台机器无响应就自动把它踢出转发列表,恢复后再加回来,这是实现高可用的关键。另一个常见需求是会话保持:像登录状态这类信息如果只存在某台服务器上,就需要让同一用户的请求始终落到同一台机器,或者把会话集中存到 Redis 等共享存储中解决。
问:负载均衡和 CDN 有什么区别?答:CDN 把静态内容缓存到离用户更近的边缘节点,解决的是「距离」问题;负载均衡把请求分摊到多台源站服务器,解决的是「单机扛不住」的问题。两者经常配合使用。
问:小网站需要负载均衡吗?答:访问量不大、单台服务器足够时通常不需要。当单机性能到达瓶颈,或者希望服务器故障时业务不中断,就该考虑加负载均衡和多台后端。
问:Nginx 反向代理就是负载均衡吗?答:反向代理是转发请求的机制,当 Nginx 把请求转发给多台后端(upstream 配多个服务器)并按算法分配时,它就同时充当了七层负载均衡器。

| 类型 | 服务器 / 网络架构技术 |
| 工作层级 | 四层(传输层)与七层(应用层) |
| 常见软件 | Nginx、HAProxy、LVS |
| 常见云产品 | 阿里云 SLB、腾讯云 CLB、AWS ELB |
| 主要用途 | 高并发分流、高可用容灾 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧