dubbo负载均衡策略

dubbo负载均衡策略121212dubbo负载均衡策略RandomLoadBalance–随机负载均衡默认情况下,dubbo是RandomLoadBalance,随机调用实现负载均衡,可以对不同provider设置不同

大家好,又见面了,我是你们的朋友全栈君。

121212
dubbo负载均衡策略
RandomLoadBalance--随机负载均衡
默认情况下,dubbo是RandomLoadBalance,随机调用实现负载均衡,可以对不同provider设置不同的权重,会按照权重来进行负载均衡,权重越大分配流量分配越高,一般实用默认就可以。

RoundRobinLoadBalance--循环负载均衡
默认是均匀的将流量打到各个节点的机器上,但是如果各个机器的性能不一样,容易导致性能差的机器负载过高,所以需要调整权重,让性能差的机器承载权重小一些,流量少一些。

LeastActiveLoadBalance
最小活跃数负载均衡,活跃调用数越小,表明该服务提供者效率越高,单位时间内可处理更多的请求,那么此时请求会优先分配给该服务的提供者。
最小活跃数负载均衡算法的基本思想是:
每个服务提供者对应着一个活跃数,active。初始情况下,所有服务提供者的active都是0,每当收到一个请求,对应的服务提供者的active+1,处理完请求后,active-1.所以服务提供者性
能越好,处理请求的效率就越高,那么active也会下降的越快,那么可以给这样的服务提供者优先分配强求。
LeastActiveLoadBalance引入了权重,是基于加权最小活跃数算法。

ConsistentHashLoadBalance
一致性hash负载均衡算法,相同请求参数一定分发到一个provider上去,provider挂掉的时候,会基于虚拟节点均匀的分配剩余的流量,都懂不会太大,如果需要的不是随机负载均衡,是要一
类请求到一个节点,那就走一致性hash策略。

dubbo 集群容错策略

Failover Cluster 模式
失败自动切换,自动重试其他机器,默认就是这个,常见读操作。

Failfast Cluster 模式
一次调用失败就立即失败,常见于非幂等性的写操作,比如新增一条记录。

Failsafe Cluster 模式
出现异常时忽略掉,常用于不重要的接口调用,比如记录日志。

Failback Cluster 模式
失败后自动记录请求,然后定时重发,比较适合用于写消息队列。

Forking Cluster 模式
并行调用多个provider,只要又一个成功就立即返回,常用于实时性要求比较高的读操作,但是会浪费更多的服务资源,可通过“forks=2”来进行设置最大并行数

Broadcast Cluster 模式
逐个调用所有的provider,任何一个provider出错则报错,通常用于通知所有提供者更新缓存活着日志等本地资源信息。

dubbo动态代理策略
默认使用javassist动态字节码生成,创建代理类,但是可以通过spi扩展机制,配置自己的动态代理策略。


 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154206.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql 字段包含字符串的方法

    mysql 字段包含字符串的方法方法一:likeSELECT*FROM表名WHERE字段名like”%字符%”;方法二:find_in_set()利用mysql字符串函数find_in_set();SELECT*FROMusersWHEREfind_in_set(‘字符’,字段名);这样是可以的,怎么理解呢?mysql有很多字符串函数find_in_set(str1,s…

    2022年10月31日
  • 深入理解JVM的垃圾回收机制

    深入理解JVM的垃圾回收机制上一篇博客介绍了Java运行时内存的各个区域。对于程序计数器、虚拟机栈、本地方法栈这三个部分而言,其生命周期与相关线程有关,随线程而生,随线程而灭。并且这三个区域的内存分配与回收具有确定性,因为当方法结束或者线程结束时,内存就自然跟着线程回收了。因此本篇文章所讲的有关内存分配和回收关注的是Java堆与方法区这两个区域。1、如何判断对象已“死”Java堆中存放着几乎所有的对象实例,垃圾回收器…

  • 中间件技术及双十一实践·EagleEye篇「建议收藏」

    中间件技术及双十一实践·EagleEye篇「建议收藏」EagleEye——分布式调用的跟踪者转自:http://www.tuicool.com/articles/fuYz2i综述阿里巴巴电子商务平台现在是一个由很多个应用集群组成的非常复杂的分布式系统。这些应用里面主要有处理用户请求的前端系统和有提供服务的后端系统等,各个应用之间一般有RPC调用和异步消息通讯两种手段,RPC调用会产生一层调一层的嵌套,一个消息发布出来更会被多

  • DialogResult

    DialogResultDialogResultDialogR=OpenFile.ShowDialog();if(DialogR==DialogResult.Cancel){}

  • JavaWeb防止表单重复提交的几种方式

    JavaWeb防止表单重复提交的几种方式JavaWeb防止表单重复提交的几种方式

  • Sobel算子的理解

    Sobel算子的理解sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。原理算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去和原始图片作卷积,分别得到横向G(x)和纵向G(y)的梯度值,如果梯度值大于某一个阈值,则认为该点为边缘点Gx方向的相关模板:Gy方向的相关模板:看了网上的很多资料,都把卷积和相关的概念给弄糊了,书上

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号