84.负载均衡哈希算法:ip_hash与hash模块

 

curl -H "X-Forwarded-For: 1.1.1.1" 192.168.244.131:8100?username=x11111asdadsadssa                   
curl -H "X-Forwarded-For: 1.1.1.1" 192.168.244.131:8100?username=x11111                              
                                                                            

iphash.conf

upstream iphashups {                                                                                   
    #ip_hash;                                                                                          
    hash user_$arg_username;                                                                           
    server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5;                             
    server 127.0.0.1:8012 weight=1;                                                                    
}                                                                                                      
                                                                                                       
server {                                                                                               
    set_real_ip_from  116.62.160.193;                                                                  
    real_ip_recursive on;                                                                              
    real_ip_header X-Forwarded-For;                                                                    
    server_name iphash.taohui.tech;                                                                    
    error_log myerror.log info;                                                                        
    access_log logs/upstream_access.log varups;                                                        
                                                                                                       
    location /{                                                                                        
        proxy_pass http://iphashups;                                                                   
        proxy_http_version 1.1;                                                                        
        proxy_set_header Connection "";                                                                
    }                                                                                                  
} 

upserver.conf

server {                                                                                               
    listen 8011;                                                                                       
    default_type text/plain;                                                                           
    return 200 '8011 server response.\n';                                                              
}                                                                                                      
                                                                                                       
server {                                                                                               
    listen 8012;                                                                                       
    default_type text/plain;                                                                           
    return 200 '8012 server response.\n';                                                              
} 

问题:

使用hash算法可以保证某一类请求,只路由到某一台上游服务中,无论这台上游服务是否正常在线,当一台            
上游服务线下,损坏了,不能直接把这台server直接从upstream配置中移除.因为移除后,导致它的hash算法           
发生变化,同时影响到路由到其他server的请求也发生变化.一致性hash算法可以缓解这个问题.     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值