大家好,又见面了,我是你们的朋友全栈君。
在生产环境中,服务的集群部署是常有的事,从消费端来说,本身并不关注所需要的服务是由哪台机器提供,但是为了应用的健壮性和高可用性,从消费端来说,可以配置一定的负载均衡策略,确保消费端的应用能够及时获取到服务的响应数据
dubbo 内置了四种负载均衡算法供开发中调用
random 随机算法,是 Dubbo 默认的负载均衡算法,多台机器上的服务随机选取一台的服务进行调用,如果各机器的性能相差不大的情况下,可以考虑使用这种策略。但这种策略可能存在服务堆积问题
roundrobin 轮询算法,多台机器上的服务按照请求顺序依次轮着调用,保证了一定的公平性,实际使用的时候可以按照设定好的权重依次进行调度,这样避免性能差的服务器出现大面积的服务调用超时情况
leastactive 最少活跃度调度算法。即被调度的次数越少,其优选级就越高,被调度到的机率就越高
consistenthash 一致性 hash 算法。对于相同参数的请求,其会被路由到相同的提供者,具体操作的时候,可以根据请求的IP地址进行hash,或者请求参数,或者某个业务参数等进行hash取值,一致性hash在nginx集群作网关配置额时候也有类似的用法
这里要说明一下,很多初学者对于dubbo配置负载均衡有一个容易错误的认知,认为负载均衡只能配置在消费端,其实服务提供者和消费者两端都可以进行配置的,遵照以下原则&#
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157308.html原文链接:https://javaforall.cn