一致性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
    • 编译
    • 安装模块

    原文: