学習ブログ: [SpringCloud] リボンが負荷分散アルゴリズムを置き換える

SpringBoot バージョン: 2.7.1
SpringCloud バージョン: 2021.0.3

プロジェクト構造
ここに画像の説明を挿入


インポートは
Eureka がリボンに統合されていることに依存するため、Eureka をインポートするだけで済みます。
負荷分散アルゴリズムを置き換えたりカスタマイズするには、インターフェイス IRule を使用する必要があります。ここでは、Boot の新しいバージョンに合わせたパッケージリボンロードバランサーをお勧めしますとクラウド

    <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(名前 = “SPRINGCLOUD-PROVIDER-DEPT”、構成 = 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