haproxy之负载均衡算法

时间:2023-01-09 13:01:37
backend
    blance 算法

haproxy之负载均衡算法动态hash的特点

    服务器运行时就可进行权重调整,即只需要重新载入配置文件即可,不需要重新启动haproxy
    支持慢速启动,即重新恢复的后端server不会一次性接收大量请求,而是慢慢拿回属于自己的
roundrobin--> 基于权重的轮循调度
    动态hash
    只能接收4095个后端server
    后面添加权重标记

server [标识] ip check weight num


static-rr-->不支持动态hash,没有后端数量限制,基本不用

leastconn-->类似于lvs中的wlc
    不过这里只考虑活动连接数,即选择活动连接数少的,另外,最好在长连接会话中使用,如sql,ldap

source-->基于hash表的算法,类似于nginx中的iphash
    键:原IP地址的hash/值:挑选过的server,应用于动态服务器,保持会话
    hash-type map-based    静态hash    对于ip的hash取余
    hash-type consistent    动态hash    使用hash环,原理查看(memcached多个memcached的解决方法)

uri-->基于uri生成hash表的算法,主要用于后端是缓存服务器
    基于uri来进行选择,比如客户访问了http://test.com/a.jpg,那么在此uri缓存失效之前,任何一个客户访问这个路径,一定访问的就是a.jpg
    len    基于多少个字符的uri
    depth    基于多少个目录层次的uri
        len 3    hash的uri是/a/
        depth 3    hash的uri是/a/b/c/

url_params-->根据url的参数来调度,用于将同一个用户的信息,都发送到同一个后端server
    参数指那一部分,先看下url格式,其中绿色加粗的就是
    <scheme>://<user>:<passwd>@<host>:<port>/<path>;<params>?<query>#<frag>
    <query>表示php程序请求的查询信息
    <frag>表示当前页的片段页,即跳转到当前页的某个部分
    这里的意思就是如果访问的是hammers,则传递参数sale(并赋值false),如果访问的是index.html,则传递参数graphics(并赋值ture)

hdr(name)-->header基于首部的信息来构建hash表HTTP之报文|首部
    hdr(Host)    基于用户请求的主机名进行调度