1.轮叫调度算法(RR)假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。
该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,
轮叫调度算法容易导致服务器间的负载不平衡。
(这种适合服务器性能差不多,请求差不多的情形)
2.加权轮叫调度(WRR)算法可以解决服务器间性能不一的情况,
它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。
假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍.
当请求的服务时间变化很大,单独的加权轮叫调度算法依然会导致服务器间的负载不平衡
(这种适合服务器性能不一,但请求时间差不多的情形)
3.最小连接调度(LCS)算法是把新的连接请求分配到当前连接数最小的服务器
算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,
它通过服务器当前所活跃的连接数来估计服务器的负载情况。
调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;
当连接中止或超时,其连接数减一
当各个服务器有相同的处理性能时,最小连接调度算法能把负载变化大的请求分布平滑到各个服务器上,
所有处理时间比较长的请求不可能被发送到同一台服务器上。
但是,当各个服务器的处理能力不同时,该算法并不理想,
因为TCP连接处理请求后会进入TIME_WAIT状态,TCP的TIME_WAIT一般为2分钟,此时连接还占用服务器的资源,
所以会出现这样情形,性能高的服务器已处理所收到的连接,连接处于TIME_WAIT状态,
而性能低的服务器已经 忙于处理所收到的连接,还不断地收到新的连接请求
(这种适合性能差不多,请求时间不一样的情形)
4.加权最小连接调度(WLC)按权重比例分配连接请求到相对较少的服务器(这种适合性能不一,请求时间不一的情形)