一致性hash模块
- 这个模块提供一致性hash作为负载均衡算法。
- 该模块通过使用客户端信息(如:$ip, $uri, $args等变量)作为参数,使用一致性hash算法将客户端映射到后端机器
- id 字段,如果配置id字段,则使用id字段作为server标识,否则使用server ip和端口作为server标识,
- 使用id字段可以手动设置server的标识,比如一台机器的ip或者端口变化,id仍然可以表示这台机器。使用id字段
- 可以减低增减服务器时hash的波动。
server
weight 字段,作为server权重,对应虚拟节点数目- 具体算法,将每个server虚拟成n个节点,均匀分布到hash环上,每次请求,根据配置的参数计算出一个hash值,在hash环
- 上查找离这个hash最近的虚拟节点,对应的server作为该次请求的后端机器。
- 在configure的时候打开一致性hash模块,关闭使用选项
—without-http_upstream_consistent_hash_module
。
- 编译
- 安装模块
原文: http://tengine.taobao.org/document_cn/http_upstream_consistent_hash_cn.html