学习博客:【SpringCloud】Ribbon替换负载均衡算法

SpringBoot版本:2.7.1
SpringCloud版本:2021.0.3

项目结构
在这里插入图片描述


导入依赖
Eureka已集成Ribbon,所以只用导入Eureka即可
要替换或自定义负载均衡算法,需使用接口IRule,这里推荐适配于新版本Boot及Cloud的包 ribbon-loadbalancer

    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.netflix.ribbon/ribbon-loadbalancer -->
        <dependency>
            <groupId>com.netflix.ribbon</groupId>
            <artifactId>ribbon-loadbalancer</artifactId>
            <version>2.7.18</version>
        </dependency>

        <!--Eureka 已集成Ribbon-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <!--actuaor 完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--实体类-->
        <dependency>
            <groupId>com.yl</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>


配置文件

server:
  port: 80

spring:
  application:
    name: SPRINGCLOUD-CONSUMER-DEPT

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
    register-with-eureka: false #不注册到eureka中
  instance:
    instance-id: springcloud-consumer-dept80  #描述信息
    prefer-ip-address: true #优先使用ip注册,访问显示ip

management:
  endpoints:
    web:
      exposure:
        include: "*"
  info:
    env:
      enabled: true

# 暴露端点info
info:
  app.name: yl-springcloud
  company.name: www.yl.com
  build.artifactId: com.yl.springcloud
  build.version: 1.0-SNAPSHOT


替换负载均衡算法

@Configuration
public class DiyRule {
    
    
    @Bean
    public IRule myRule(){
    
    
        return new RandomRule();
    }
}

在这里插入图片描述
这里有很多种算法,当然也可以重写方法自定义负载均衡算法


主启动类,开启注解

@LoadBalancerClient(name =“SPRINGCLOUD-PROVIDER-DEPT”,configuration = DiyRule.class)

通过源码发现,只要按其要求填写参数即可
在这里插入图片描述

@SpringBootApplication
@EnableEurekaClient
@LoadBalancerClient(name ="SPRINGCLOUD-PROVIDER-DEPT",configuration = DiyRule.class)
public class DeptConsumer_80 {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(DeptConsumer_80.class,args);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Aurinko324/article/details/125650969