负载均衡策略_15-第四节 Dubbo系统配置负载均衡策略

本文介绍了Dubbo的四种负载均衡策略:随机、轮询、最少活跃调用数和一致性Hash,并详细阐述了各策略特点。负载均衡策略的优先级从高到低为:客户端方法级别、接口级别、服务端方法级别、服务端接口级别。默认策略是随机。在Spring Boot项目中,可以在控制器注解上通过参数`loadbalance = "roundrobin"`来配置负载策略,如配置为轮询方式。
摘要由CSDN通过智能技术生成
68b600dece99308effb3066addf46f6c.png

1、Dubbo支持的负载均衡策略

1)、随机:Random LoadBalance

  • 随机,按权重设置随机概率。
  • 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

2)、轮询:RoundRobin LoadBalance

  • 轮询,按公约后的权重设置轮询比率。
  • 存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。

3)、最少活跃调用数:LeastActive LoadBalance

  • 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
  • 使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

4)、一致性 Hash:ConsistentHash LoadBalance

  • 一致性 Hash,相同参数的请求总是发到同一提供者。
  • 当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

2、Dubbo负载均衡策略的优先级

上面4种配置的优先级是:

  1. 客户端方法级别配置。
  2. 客户端接口级别配置。
  3. 服务端方法级别配置。
  4. 服务端接口级别配置。

需要指出的是,Dubbo默认的负载均衡策略是随机。

3、在消费者端(客户端)配置负载策略

策略在Spring Boot项目中,只需要在请求的controller类上的注解,增加负载配置参数即可,具体代码如下:

package com.shenmazong.serverdubboconsumer.controller;import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;import com.shenmazong.service.UserService;import lombok.extern.slf4j.Slf4j;import org.apache.dubbo.config.annotation.Reference;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@Slf4jpublic class UserController {    @Reference(interfaceClass = UserService.class, version = "1.0.0", check = false, loadbalance = "roundrobin")    UserService userService;    @GetMapping(value = "/getWelcome")    @HystrixCommand(fallbackMethod = "fallBackHi")    public Object getWelcome() {        String msg = userService.sayHello();        System.out.println("消费者:"+msg);        return msg;    }    public String fallBackHi() {        return "熔断了....";    }}

上面代码中loadbalance = "roundrobin"的参数设置就是配置了该接口调用生产者使用轮询的策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值