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)
    • 通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。由概率概率统计理论可以得知,随着调用量的增大,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的效果。 加权随机法跟加权轮询法类似,根据后台服务器不同的配置和负载情况,配置不同的权重。不同的是,它是按照权重来随机选取服务器的,而非顺序。

参考

评论