1.轮询法
轮询法即逐个请求,对于每一个请求,则在地址列表中依次选择一个地址,因此在请求数目上的分配相对比较均衡。
2.随机法
随机法则是随机分配给地址列表中的任一服务器。这个例子则通过随机生成列表长度内的一个整数,然后获取其地址来实现的。
3.源地址哈希法
该方法通过对发送请求的客户端的ip地址进行求hash值,并对服务地址列表长度取余,选择结果对应的服务器。该方法保证了同一客户端ip地址会被映射到相同的后端服务器上,直到后端服务器列表发生了改变。根据这个特性,可以在服务消费者和服务提供者之间建立有状态的session会话。
4.加权轮询法
加权轮询法则是给每个服务器都设置了权重,配置低、负载高的服务器权重低,配置高、负载低的服务器权重高。这说明应该让权重高的服务器接收到请求的概率更高。因此可以根据权重在列表中复制相同ip地址,然后根据轮询法来选择相应ip地址,可以满足权重高的被选择的概率相对较高。
6.最小连接数算法
由于前面几个算法基本只考虑了请求数上的负载均衡,而没有考虑到每个请求处理时长的不同,所以也许实际并不这样。因此最小连接数算法更合适实际场景。最小连接数根据每个服务器当前连接的请求数来选择连接请求数最小的服务器。因此该算法需要为每个服务器地址维护一个连接数变量来记录当前该服务器连接的请求数,当有新请求连接,以及请求处理结束都需要改变该值。
6 加权随机(Weight Random)法
与加权轮询法类似,加权随机法也是根据后端服务器不同的配置和负载情况来配置不同的权重。不同的是,它是按照权重来随机选择服务器的,而不是顺序