OSI 模型
常见 OSI 模型负载均衡方案
- 2 层负载均衡:一般是用虚拟 MAC 地址方式,外部对虚拟 MAC 地址请求,负载均衡器接收后分配后端实际的 MAC 地址响应。
- 3 层负载均衡:一般采用虚拟 IP 地址方式,外部对虚拟的 IP 地址请求,负载均衡器接收后分配后端实际的 IP 地址响应。
- 4 层负载均衡:基于 IP 端口的负载均衡方案,对应于 OSI 七层模型的第四层。基于传输层的底层负载均衡方案,可以实现 TCP 连接层的会话保持。
- 7 层负载均衡:即应用层的负载均衡。7 层的负载均衡更加针对特定的应用协议。基于 HTTP 应用的负载均衡可以实现对 URL 的转发应用、HTTP 请求的处理、session 信息会话保持等等。
4 层与 7 层负载均衡
4 层的负载均衡更偏向底层能力的转发,相对于 7 层负载均衡,负载性能更好。7 层负载均衡能做更细微粒度的负载决策。
- 常见负载均衡器(Load Balancer):
- F5:硬件负载均衡器;
- LVS:基于IP层和基于内容请求分发的负载均衡器;
- Nginx:轻量级负载均衡器,TCP/UDP、HTTP 负载均衡支持;
- HAProxy:支持 TCP/HTTP 的负载均衡;
常见负载均衡算法
- 轮询(Round Robin)
- 将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
- 加权轮询(Weighted Round Robin)
- 根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。自动问询真实服务器的负载情况,并动态地调整其权值。
- 目标地址散列(Destination Hashing)
- “目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
- 源地址散列(Source Hashing)
- “源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
- 最少链接(Least Connections)
- 将请求分配到连接数最少的服务器上(目前处理请求最少的服务器)。根据服务器当前的请求处理情况,动态分配.
- 加权最少链接(Weighted Least Connections)
- 在集群系统中的服务器性能差异较大的情况下,负载均衡器采用”加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。负载均衡器可以自动问询真实服务器的负载情况,并动态地调整其权值。
- 随机法、加权随机(Random)
- 通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。由概率概率统计理论可以得知,随着调用量的增大,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的效果。 加权随机法跟加权轮询法类似,根据后台服务器不同的配置和负载情况,配置不同的权重。不同的是,它是按照权重来随机选取服务器的,而非顺序。
参考
- What Is Layer 7 Load Balancing?
- 常见负载均衡算法