您现在的位置是:首页» windows系统» dubbo默认负载均衡策略是什么,dubbo有哪几种负载均衡策略

dubbo默认负载均衡策略是什么,dubbo有哪几种负载均衡策略

2023-12-05 03:32:36
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! 在分布式集群架构下,负载均衡很重要。集群本来就是为了分担压力,负载均衡做的不好,就会失去了集群的意义。按照权重随机分配,即是不均等随机事件。比如一块不均匀的硬币,字面30%概率,花面7

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

在分布式集群架构下,负载均衡很重要。集群本来就是为了分担压力,负载均衡做的不好,就会失去了集群的意义。

按照权重随机分配,即是不均等随机事件。比如一块不均匀的硬币,字面30%概率,花面70%概率。这种就是不均等的随机事件。

从数学上看,即是一个区间0-10,然后均等随机产生0-10的随机数。然后在这个区间上划分,0-3,3-6,6-10.分别把这个三个区间看做三个随机事件,那么这个三个随机事件的概率即是30%,30%,40%。

权重分别为[2,4,8],权重和为14,那么前面三个权重为2,4,8的三个事件就对应[0,2,6,14]这个三个区间。比如6-14表示权重为8的随机事件的概率为8/14。所以当产生一个随机数时,通过遍历权重数组,减等,当小于0时,他就落在那个权重事件上。比如:随机数5落在2-6之间,2-6对应的是权重为4这个事件,所以他属于权重为4的这个随机事件。

当多线程出现时,使用原子类的整数去取莫轮询节点。

注意:sequences是成员变量,每次调用函数所有的权重都回归最初。

使用某种hash算法,同一请求总是会hash到同一台机子上。

传统的hash算法,存在当hash区间变化时,同样的值hash后的位置不一样了。而一致性hash算法把请求,节点都hash后,放到一个圆环上,按照顺时针转动到的第一个节点为结果。这样就减少了结果的变化。还可以通过增加虚拟节点的方式均衡hash后的概率问题,当然增加节点需要交叉增加。

1.怎么保证服务器少的情况下,hash的结果变化不大。

把消费者,提供者都去hash,hash的结果映射到一个环上。然后,要判断的那个消费者访问那个提供者的时候,进行顺时针的转动。遇到的第一个提供者节点就是。

交叉的防止虚拟节点,只要节点够多,那就近似是想等的。

如果有多台机子的最少活跃数相同,在这几个中使用第一种按权重随机的方式

最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。

使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

比如:同样是进行了10个请求,在一分钟内,A只处理了两个,B处理了5个。那么A的机会就更少,那么就会保证的系统整体的速度。

1、负载均衡、集群容错、服务降级这三个概念在DUBBO中非常重要,同理其它分布式框架也都有相同或者相近之概念,那么三者分别代表什么含义,有什么联系和区别,解决了什么问题,正是本文需要回答的问题。

2、从调用顺序角度分析,调用顺序依次是负载均衡、集群容错、服务降级。从解决问题角度分析,负载均衡解决了「选哪一个」问题,集群容错解决了「换哪一个」问题,最终服务降级解决了「全错怎么办」问题。

3、假设有1个服务消费者面对10个提供者,这时面临第一个问题就是「选哪一个」进行调用,所以负载均衡最先调用,假设选定了5号服务提供者进行服务调用。

4、假设消费者调用5号提供者发生了超时异常,这时面临第二个问题就是「换哪一个」进行调用:5号超时要不要换1号试一试,或者直接返回不进行重试,所以集群容错第二个调用。

5、假设已经重试了1号、3号、6号提供者全部超时,这时面临「全错怎么办」这第三个问题,这时可以直接返回一个固定值或者提示文案,所以服务降级第三个调用。

6、假设有1个服务消费者面对10个服务提供者,那么应该选哪一个进行调用呢?DUBBO提供以下四种负载均衡策略:

7、最少活跃数策略,每个提供者维护并发处理的任务个数,任务个数越大活跃度越高,消费者会选择活跃度最低的提供者

8、一致性哈希策略,相同参数的请求会发给同一个提供者,并且一致性哈希算法较好地解决了某台提供者宕机可能引起的波动问题

9、假设消费者调用5号提供者发生了超时异常,那么应该换哪一个进行调用呢?DUBBO提供以下六种集群容错策略:

10、故障转移策略,作为默认策略,当消费发生异常时,通过负载均衡策略再选择一个提供者节点进行调用,直到达到重试次数

11、快速失败策略,消费者只消费一次服务,当发生异常时则直接抛出

12、安全失败策略,消费者只消费一次服务,如果消费失败则包装一个空结果,不抛出异常

13、异步重试策略,消费发生异常时返回一个空结果,失败请求将会进行异步重试。如果重试超过最大重试次数还不成功,放弃重试并不抛出异常

14、并行调用策略,消费者通过线程池并发调用多个提供者,只要有一个成功就算成功

15、广播调用策略,消费者遍历调用所有提供者节点,任何一个出现异常则抛出异常

16、假设已经重试1号、3号、6号提供者全部超时,这时可以直接返回固定值或者提示文案,不再进行重试,DUBBO提供以下三种服务降级策略:

17、警惕看不见的重试机制:为什么使用RPC必须考虑幂等性

18、面试官问DUBBO不能降级哪类异常,我们聊了二十分钟

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com