一、静态调度(只根据算法本身进行调度,而不考虑服务器节点性能)

1) rr :轮询

       说明:从1开始,N结束,依次转发;默认,无状态算法(不考虑各服务器性能)

2) wrr:加权轮询

       说明:不同比例的请求数

3) sh:源地址哈希

       说明:将来自同一个源ip地址的请求发送给同一台节点主机(对应关系记录在一张哈希表中);http每次提交的请求都是独立的,不会受之前提交的应答情况直接影响,也不会直接影响后面的请求和应答,带来的web访问的结果:每访问或刷新一下页面,都要进行一次重新验证身份登记,实际真实线上需加其他机制如session会话、cookie(小型文本文件)

      cookie:客户机访问服务器主机,服务器回应请求时,同时携带了自己的标识(如自己的id、客户机在服务器上浏览的信息等)给到客户机,当客户机再次访问时(带上cookie),主机根据cookie内容来分析客户信息,无需再次验证身份

     老的cookie技术,客户机访问新的服务器主机时,将携带其他服务器主机的标识和访问的信息,新服务器便可将根据内容投放广告

     新的cookie技术,cookie只携带服务器的id,将客户机访问自己的信息记录,保存在服务器内存session会话中,待客户机再次访问时,来匹配session的信息,无需再次验证身份

     当某台节点服务器断掉时,客户端请求分配到新的节点,但是没有session记录,所有需要将所有节点主机的session记录共享,如nfs,并发量小,一般用数据库方式;而如不建立session共享,就要保证同一台客户机一直访问同一台服务器节点,即sh模式

4) dh:目的地址哈希

      说明:将来同样的资源请求发送给同一台节点主机


二、动态调度(考虑服务器的性能和状态,通过活动连接数和非活动连接数判断状态是否事物繁忙)

1) lc:最少连接

       说明:比较所有节点的值:active数*256+inactive数,谁最小,谁最空闲;缺点:当后端RS性能差时,有缺陷

2) wlc:加权最小连接

       说明:比较所有节点的值:(active数*256+inactive数)/weight,权重越大,承担的责任越大;权重比例不合理的话,会导致某台服务器一直收到请求,而其他服务器一直空闲

3) sed:最短期望延迟

       说明:基于wlc的升级版,计算公式:(active+1)*256/weight

4) nq:永不排队

       说明:改进的sed算法,当发现有零连接时,优先分给它

5) lblc:类似dh连接

       说明:既要考虑缓存命中率,也要考虑缓存服务器的连接数,尽可能将请求分配个空闲缓存服务器

6) lblcr:基于lblc算法

       说明:等于lblc+高效缓存共享机制