搜索

upstream模块调度算法

gecimao 发表于 2019-07-26 02:19 | 查看: | 回复:

  内容概述: 静态调度算法: 1.rr轮询(默认调度算法) 顺序分配逐一请求 2.wrr权重轮询算法 权重大转发次数多 3.ip_hash 相同ip固定转发 动态调度算法: 1.fair调度算法 响应时间短的优先分配 2.least_conn 连接请求少的优先分配 3.一致HASH 和url_hash 后台为缓存服务器时效果好

  调度算法一般分为两类,第一类为静态调度算法,即负载均衡器根据自身设定的规则进行分配,不需要考虑后端节点服务器的情况,例如: rr wrr ip_hash等都属于静态调度算法。

  第二类为动态调度算法,即负载均衡器会根据后端节点的当前状态来决定是否分发请求,例如:连接数少的优先获得请求,响应时间短的优先获得请求。例如:least_conn,fair等都属于动态调度算法。

  按客户端请求顺序把客户端的请求逐一分配到不同的后端节点服务器.这相当于LVS中的rr算法,如果后端节点服务器宕机(默认情况下nginx只检查80端口),宕机的服务器会别自动从节点服务器池中剔除,以使客户端的用户访问不受影响。新的请求会分配给正常的服务器。

  在rr轮询算法的基础上加上权重,即为权重轮询算法,当使用该算法时,权重和用户访问成正比,权重值越大,被转发的请求也越多。可以根据服务器的配置和性能指定权重值大小,有效解决新旧服务器性能不均带来的请求分配问题。

  假设希望在有30个请求到达前端时,其中20个请求交给 192.168.1.3处理,剩余10个请求交给 192.168.1.2处理, 就可做如下配置:

  每个请求按客户端IP的hash结果分配,当新的请求到达时,先将其客户端IP通过哈希算法哈希出一个值,在随后的客户端请求中,客户IP的哈希值只要相同,就会被分配到同一台服务器,该调度算法可以解决动态网页的session共享问题,但有时会导致请求分配不均,即无法保证1:1的负载均衡,因为在国内大多数公司都是NAT上网模式,多个客户端会对应一个外部IP,所以,这些客户端都会被分配到同一个节点服务器,从而导致请求分配不均。LVS负载均衡的-p参数,

  50参数都类似这个Nginx里的ip_hash参数解决动态网页的session共享问题。

  此算法会根据端节点服务器的响应时间来分配请求,响应时间短的优先分配。这是更加智能的调度算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器地响应时间来分配请求,响应时间短地优先分配。Nginx本身时不支持fair调度算法地,如果需要使用这种调度算法,必须下载Nginx的相关模块

  least_conn算法会根据后端节点的连接数来决定分配情况,哪个机器连接数少就分发。

  除了上面介绍的这些算法外,还有一些第三方的调度算法,例如:url_hash,一致性HASH算法等

  因此least_conn指令的含义就是,选取活跃连接数与权重weight的比值最小者为下一个处理的server。当然,上一次已选的server和已达到最大连接数的server按照不在选择的范围

  假如上一个请求选择了第二台10.10.10.4,下一个请求到来,通过比较剩下可用的server的conns/weight值来决定选哪一台

  100/2=50, 80/1=80 因此5080 所以选择第一台而不选第三台。尽管连接数第一台要大于第三台

  和ip_hash类似,这里是根据访问URL的hash结果来分配请求的,让每个URL定向到同一个后端服务器,后端服务器为缓存服务器时效果显著。在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method使用的时hash算法

  url_hash按访问URL的hash结果来分配请求,使每个URL定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率命中率。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx的hash模块软件包。

  一致性HASH算法一般用于代理后端业务为缓存服务(squid,memcached)的场景,通过将用户请求的URI或者指定字符串进行计算,然后调度到后端的服务器上,此后任何用户查找同一个URI或者指定字符串都会被调度到这一台服务器上,因此后端的每个节点缓存的内容都是不同的,一致性HASH算法可以解决后端某个或几个节点宕机后,缓存的数据动荡的最小,一致性HASH算法知识比较复杂

  导读 nginx是通过轮询算法来进行负载均衡的通信的,引导这个请求循环的到配置在upstream组中server端口上去,因为他是默认的方法,这里没有轮询命令。 创建一个upstream配置组在...博文来自:Listen2You的博客

  有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理、即时通讯、文件下载...博文来自:陈帅同学的博客

  在通过nginx搭建负载均衡服务器时,我们无法实时监测各个负载节点的运行情况,当某个节点崩溃后这个时候再有请求到来的话只能等待超时时间后转发到其他节点,这样就会造成响应延迟性能降低的问题。而nginx...博文来自:weixin_30379625的博客

  其实这一节不算OpenResty的学习内容,因为负载均衡完全是由nginx完成的,不过也把它放在这里吧,谁让是一块学的呢。废话不多说,开始今天的学习任务。首先介绍一个负载均衡,引用最佳实践里面的句子:...博文来自:leadersnowy的专栏

  Upstream机制是nginx中的核心模块之一,基于Upstream模块可以对上游的各种服务器或组件进行访问,如web服务器、memcache、反向代理、数据库和redis访问。正是Upstream...博文来自:szkbsgy的专栏

  简介Nginx在生产环境中很多情况下是被用来当一个反代服务器,例如http反代,把http的访问压力分摊到后端的服务器集群上,而Nginx作为http反代,通常用到的模块是:ngx_http_prox...

  使用NGINX做负载均衡器时,常遇到如何将来自同一用户的访问始终定向到一台后端设备进行响应,一般nginx上面有下面办法来实现会线、ip_hash  nginx原生支持的基于IP...

  之前写了篇文章用openresty实现了一个动态路由,虽然说是动态的,但是实际上还是需要将upstream在配置文件中写好,还是相当于静态的。最近工作中有这方面的需求,upstream是完全动态,由客...

  1、基本概念2、基本配置3、日志切割4、反向代理(proxy_pass)与负载均衡(upstream)5、nginx优化1.1、基本概念Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(...

  nginx作为反向代理服务器,一般需要把请求转发给内部网络的服务器集群,这里的负载均衡是指选择一种策略,尽量把请求平均的分发到每一台服务器,而nginx的upstream模块就可以完成向服务器集群的接...

  如果基础环境没有配置的话,请到上篇,步骤一:更新自带的lualib/resty/ups...

  风一样的少年杂谈篇-nginx(tengine)+lua动态后端实现,无间断扩容缩容

  现在很多地方都使用nginx或者tengine进行前端的负载均衡,但单纯使用nginx(tengine)不能完全满足日常需求,所以,需要进行适当的功能扩展,在以往只能是nginxc模块开发,这样费时费...

  本教程基于docker-compose的环境下实现的。一、目的新增一个tomcat节点,或者需要配置nginx的负载均衡,则需要重新配置nginx的config文件中的upstream,然后再重启。而...

  一、实验目的在批处理系统、分时系统和实时系统中,进程数目一般都大于处理机的个数,导致各个进程互相争夺处理机。这就需要进程调度程序按照相应的调度方式和调度算法,从处于就绪状态的诸多进程中选择一个进程将处...

  在日常nginx的使用中,经常会出现upstream代理的后端服务器失效的情况,这会导致请求经常会流向失效的后端,导致访问失败。若想剔除掉已失效的后端,必须手动注释或删除配置,很是麻烦。利用n...

  一.轮转法的基本原理:根据先来先服务的原则,将需要执行的所有进程按照到达时间的大小排成一个升序的序列,每次都给一个进程同样大小的时间片,在这个时间片内如果进程执行结束了,那么把进程从进程队列中删...

  1、运行在YARN上的MapReduce应用程序2、运行在YARN上的Storm应用程序3、YARN应用程序基本构成①客户端:主要作用是提供一系列访问接口供用户与YARN交互,包括提交Applicat...

  前言nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。这完全就是抢HAproxy份额的节奏,鉴于nginx在7层负载均衡和webservice上的成...

  一个分支的upstream,其实就是与远程分支做关联,告诉git,默认此分支为推送及拉取的远程分支的信息。upstream的设置基本设置 1 $gitbranch--set-ups...

本文链接:http://olivierlutaud.net/diaodumokuai/861.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部