1 / 21
文档名称:

Dubbo 负载均衡算法.docx

格式:docx   大小:228KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Dubbo 负载均衡算法.docx

上传人:雾里看花 2019/4/7 文件大小:228 KB

下载得到文件列表

Dubbo 负载均衡算法.docx

相关文档

文档介绍

文档介绍:膅负载均衡算法袄在集群负载均衡时,Dubbo提供了4种均衡策略,如:RandomLoadBalance(随机均衡算法)、;RoundRobinLoadBalance(权重轮循均衡算法)、LeastActionLoadBalance(最少活跃调用数均衡算法)、ConsistentHashLoadBalance(一致性Hash均衡算法)。缺省时为Random随机调用。这四种算法的原理简要介绍如下:衿1、RoundRobinLoadBalance艿Round-Robin既是轮询算法,是按照公约后的权重设置轮询比率,即权重轮询算法(WeightedRound-Robin),它是基于轮询算法改进而来的。这里之所以写RoundRobin是为了跟Dubbo中的内容保持一致。羄轮询调度算法的原理是:每一次把来自用户的请求轮流分配给内部中的服务器。如:从1开始,一直到N(其中,N是内部服务器的总个数),然后重新开始循环。羄该算法的优点:芀其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。螆该算法的缺点:羆轮询调度算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。肄所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。但是,在实际情况中,可能并不是这种情况。由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。蚀权重轮询调度算法流程蒈假设有一组服务器S={S0,S1,…,Sn-1},W(Si)表示服务器Si的权值,一个指示变量i表示上一次选择的服务器,指示变量cw表示当前调度的权值,max(S)表示集合S中所有服务器的最大权值,gcd(S)表示集合S中所有服务器权值的最大公约数。变量i初始化为-1,cw初始化为零。其算法如下:螅while(true){膄  i=(i+1)modn;肁  if(i==0){羆     cw=cw-gcd(S);蒄     if(cw<=0){芄       cw=max(S);芈       if(cw==0)蚈         returnNULL;芃     }莃  }虿  if(W(Si)>=cw)肆    returnSi;莆}蒃这种算法的逻辑实现如图2所示,图中我们假定四台服务器的处理能力为3:1:1:1。肀螈                                     图1权重轮询调度实现逻辑图示肅由于权重轮询调度算法考虑到了不同服务器的处理能力,所以这种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。所以,在实际应用中比较常见。蒃2、ConsistentHashLoadBalance蒁一致性Hash,相同参数的请求总是发到同一个提供者。一:一致性Hash算法可以解决服务提供者的增加、移除及挂掉时的情况,能尽可能小的改变已存在key映射关系,尽可能的满足单调性的要求。二:一致性Hash通过构建虚拟节点,能尽可能避免分配失衡,具有很好的平衡性。芆一致性Hash下面就来按照5个步骤简单讲讲consistenthash算法的基本原理。因为以下资料来自于互联网,现说明几点:一、下面例子中的对象就相当于Client发的请求,cache相当于服务提供者。袄环形hash空间薃考虑通常的hash算法都是将value映射到一个32为的key值,也即是0~2^32-1次方的数值空间;我们可以将这个空间想象成一个首(0)尾(2^32-1)相接的圆环,如下面图2所示的那样。袂羇图2环形hash空间袇把对象映射到hash空间蚃接下来考虑4个对象object1~object4,通过hash函数计算出的hash值key在环上的分布如图3所示。罿hash(object1)=key1;虿……蚅hash(object4)=key4;螃荿图34个对象的key值分布膇把cache映射到hash空间蒄Consistenthashing的基本思想就是将对象和cache都映射到同一个hash数值空间中,并且使用相同的hash算法。袃假设当前有A,B和C共3台cache,那么其映射结果将如图4所示,他们在hash空间中,以对应的hash值排列。螀hash(cacheA)=keyA;衿……膃hash(cacheC)=keyC;羃膁图4cache和对象的key值分布莇说到这里,顺便提一下cache的hash计算,一般的方法可以使用cache机器的IP地址或者机器名作为hash输入。芆把对象映射到cache肂现在cache和对象都已经通过同一个hash算法映射

最近更新

通风系统质量标准化检查项目(井下) 7页

关于优秀教师励志演讲稿(33篇) 87页

人教版二年级下册数学期末测试卷及参考答案(.. 5页

人教版二年级下册数学期末测试卷精品(全优).. 7页

人教版一年级上册数学期末测试卷含完整答案(.. 9页

人教版六年级下册数学期末测试卷带答案(典型.. 7页

人教版三年级上册数学期末测试卷及答案【典优.. 5页

人教版小学三年级上册数学期末测试卷含答案【.. 6页

人教版二年级下册数学期末测试卷及参考答案(.. 6页

冀教版一年级上册数学期末测试卷含答案ab卷 9页

人教版六年级下册数学期末测试卷【最新】 5页

人教版六年级下册数学期末测试卷含答案(培优.. 6页

北京版一年级上册数学期末测试卷附完整答案(.. 8页

北师大版一年级上册数学期末测试卷及答案【各.. 9页

冀教版一年级上册数学期末测试卷精品【达标题.. 9页

小升初数学期末测试卷【考点提分】 9页

北京版一年级上册数学期末测试卷带精品答案 8页

小升初数学期末测试卷(精品) 8页

小升初数学解答题50道含答案【能力提升】 15页

北师大版一年级上册数学期末测试卷附答案【突.. 9页

小升初六年级下册数学期末测试卷及答案【考点.. 6页

小升初数学期末测试卷及参考答案(培优) 7页

小学一年级上册数学期末测试卷精品【预热题】.. 8页

小升初数学解答题50道【夺冠系列】 15页

小学六年级下册数学期末测试卷含答案(综合卷.. 6页

小学六年级下册数学期末测试卷附答案(实用).. 8页

小学科学《声音》练习题及答案(夺冠系列) 12页

小学一年级上册数学期末测试卷及完整答案(精.. 7页

小学一年级上册数学期末测试卷附参考答案【能.. 8页

肉牛交易中心商业计划书 3页