nginx负载均衡中rr和iphash策略分析报告材料

nginx负载均衡中rr和iphash策略分析报告材料

ID:28698850

大小:37.00 KB

页数:5页

时间:2018-12-13

nginx负载均衡中rr和iphash策略分析报告材料_第1页
nginx负载均衡中rr和iphash策略分析报告材料_第2页
nginx负载均衡中rr和iphash策略分析报告材料_第3页
nginx负载均衡中rr和iphash策略分析报告材料_第4页
nginx负载均衡中rr和iphash策略分析报告材料_第5页
资源描述:

《nginx负载均衡中rr和iphash策略分析报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案nginx负载均衡中RR和ip_hash策略分析一、nginx的upstream目前支持负载均衡方式的分配1、RR(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。例如:upstreamtomcats{server10.1.1.107:88max_fails=3fail_timeout=3sweight=9;server10.1.1.132:80max_fails=3fail_timeout=3sweight=9;}2、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决s

2、ession的问题。例如:upstreamtomcats{ip_hash;server10.1.1.107:88;server10.1.1.132:80;}3、fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。4、url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。下面,我们针对RR和ip_hash的负载均衡策略进行分析。因为每一种负载均衡策略都是在upstream的框架中使用,upstream控制总的工作流程,负载均衡策略仅仅提供选择或释放server的函数,所以,我们

3、在分析RR时结合upstream(ngx_http_upstream.c)。ip_hash大部分内容与RR一致,只是重新实现RR中的ngx_http_upstream_get_peer函数。二、RR策略RR机制分为三个部分:初始化upstream,获取一个可用的后台服务器和释放后台服务器。以下分析以此配置为例:upstreambackend{serverAmax_fails=3fail_timeout=4sweight=9;serverBmax_fails=3fail_timeout=4sweight=9;serverCmax_fails=3fail_timeout=4

4、sweight=9;精彩文档实用标准文案serverDbackup;ServerEbackup;}2.1初始化upstream对于例子中的upstreambackend来说,首先初始化各个server,除了设置IP和端口号外,还要设置如下置weight,current_weight,max_fails和fail_timeout。其中max_fails和fail_timeout这两个参数是组合使用的,表示server如果失败次数达到max_fails次,并保持fail_timeout秒之内该服务器不能被访问。对于serverA来说,设置如下serverA.weight=9

5、;serverA.current_weight=9;//初始值等于配置文件中的weight.serverA.max_fails=3;serverA.fail_timeout=4;接着,创建两个server类型(在下文介绍中,server类型等同于peer类型,都是用来指明存储upstream中一个server的信息)的数组,peers和backup,分别存储正常的轮循server和备用server.并且,按照数组中各个server的weight值的大小,由高到底排序。本例中,在数组peers中存储serverA、serverB和serverC,并记录server的总个数

6、peers->number=3;在数组backup中存储serverD和serverE,并记录server的总个数backup->number=2;最后,设置upstream中各个变量的值。rrp表示当前要轮循的server数组,初始设置为Upstream->rrp=peers.tries表示尝试的次数,当尝试一个server失败后,tries的值就会减一。初始设置为peers的总个数。Next表示当peers数组中server都失败,不能提供服务了,通过upstream->next,切换到back数组中选择server.2.2具体的RR策略2.2.1)选择最初要轮循的

7、server,把它给rrp->current变量,跳转到2.2.2当一个客户端请求到达nginx后,nginx就会在upstream的peers数组中挑选一个current_weight最大的server作为当前请求最初要轮循的server.在peers数组中选取current_weight最大的算法如下:由于peers数组中的server是按照weight值的大小排序好的。它是通过双重循环,满足下列条件后,if(peer[n].current_weight*1000/peer[i].current_weight>peer[n].weig

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。