负载均衡算法简介

引言

前面讲了负载均衡的原理和类别,这篇对负载均衡的算法做个简介。

负载均衡算法

常用的负载均衡算法有:轮询,随机,最少链接,源地址散列,加权等方式。

1. 轮询

将所有请求依次分发到每台服务器上,适合服务器硬件配置相同的场景。  

  • 优点:每台服务器的请求数目相同;
  • 缺点:服务器压力不一样,不适合服务器配置不同的情况;

2. 随机

请求随机分配到各个服务器。

  • 优点:使用简单;
  • 缺点:不适合机器配置不同的场景;

3. 最少连接

将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。

  • 优点:根据服务器当前的请求处理情况,动态分配;
  • 缺点:算法实现相对复杂,需要监控服务器请求连接数;

4. Hash(源地址散列)

根据 IP 地址进行 Hash 计算,得到 IP 地址。

  • 优点:将来自同一 IP 地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。
  • 缺点:目标服务器宕机后,会话会丢失;

5. 加权

在轮询,随机,最少连接,Hash 等算法的基础上,通过加权的方式,进行负载服务器分配。

  • 优点:根据权重,调节转发到后端服务器的请求数目;
  • 缺点:使用相对复杂;

Ref

大型网站架构系列:负载均衡详解(2)