负载均衡工作原理详解(图文全面总结)

负载均衡是大型架构的关键技术,下面我就全面来详解负载均衡原理@mikechen

负载均衡

负载均衡是一种技术,用于将网络流量,有效地分配到一组服务器、或计算资源。

负载均衡工作原理详解(图文全面总结)-mikechen

可以极大的提升性能,比如:通过增加服务器的数量,来轻松应对不断增长的流量,而不是升级单台服务器的性能。

并且,还可以确保当集群中的某个服务器出现故障时,流量能够自动地被重定向到健康的服务器,从而保障服务的持续运行。

 

负载均衡原理

负载均衡器的工作原理,可以概括为以下三个关键步骤:

负载均衡工作原理详解(图文全面总结)-mikechen

1. 流量接收与转发

负载均衡器,对外暴露一个统一的 IP 地址(通常是 VIP,Virtual IP),客户端的所有请求都发送到这个 VIP。

 

2.根据算法分配

负载均衡器接收到请求后,根据预设的负载均衡算法,选择一个合适的后端服务器,并将请求转发过去。

 

3.状态检测

负载均衡器,对后端节点的健康状况和性能指标(如响应时间、连接数、CPU/内存利用率)进行监测,以决定可用节点集合。

最后,请求被转发到目标服务器,处理并返回结果。

 

负载均衡算法

轮询(Round Robin)

按顺序将请求分发到后端服务器,适用于后端节点性能均衡且请求成本相近的场景。

负载均衡工作原理详解(图文全面总结)-mikechen

简单易实现,但在节点性能或请求耗时差异大时效果欠佳。

 

加权轮询

为每个节点分配权重,根据权重分配请求,适用于节点性能不同的场景。

负载均衡工作原理详解(图文全面总结)-mikechen

 

最少连接

将新请求分配给当前连接数最少的节点,适用于请求处理时间差异较大的场景,能够较好平衡长短请求。

负载均衡工作原理详解(图文全面总结)-mikechen

 

加权最少连接

负载均衡工作原理详解(图文全面总结)-mikechen

在最少连接的基础上结合权重,兼顾节点性能差异。

 

负载均衡分类

按照处理网络协议的不同层次,负载均衡大体可以分为:二层、三层、四层和七层负载均衡。

负载均衡工作原理详解(图文全面总结)-mikechen

 

二层负载均衡(L2)

工作在数据链路层,通过修改 MAC 地址 转发请求,性能高但灵活性差,应用较少。

三层负载均衡(L3)

工作在网络层,通过修改 目标 IP 来分发请求,支持跨网段,但只能基于 IP 调度,粒度较粗。

四层负载均衡(L4)

工作在传输层,根据 IP + 端口号 转发请求,性能高、通用性强,常见于 LVS、HAProxy(L4模式)。

七层负载均衡

工作在应用层,可以根据 URL、域名、请求头、Cookie 等应用数据 分发请求,常见于 Nginx、Envoy、API Gateway…等等。

 

评论交流
    说说你的看法