• SpringCloud(4) ------>自定义负载均衡策略配置


    1、向pom文件中添加依赖

          <!--负载均衡ribbon-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
            </dependency>

    2、自定义负载均衡策略

    /**
     * @author liangd
     * @since 2021-01-11 19:51
     * 负载均衡策略配置
     */
    @Configuration
    public class RibbonRuleConfig {
        /**
         * 规则说明
         * 1.com.netflix.loadbalancer.RandomRule:从提供服务的实例中以随机的方式;
         * 2.com.netflix.loadbalancer.RoundRobinRule:以线性轮询的方式,就是维护一个计数器,从提供服务的实例中按顺序选取,第一次选第一个,第二次选第二个,以此类推,到最后一个以后再从头来过;
         * 3.com.netflix.loadbalancer.RetryRule:在RoundRobinRule的基础上添加重试机制,即在指定的重试时间内,反复使用线性轮询策略来选择可用实例;
         * 4.com.netflix.loadbalancer.WeightedResponseTimeRule:对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择;
         * 5.com.netflix.loadbalancer.BestAvailableRule:选择并发较小的实例;
         * 6.com.netflix.loadbalancer.AvailabilityFilteringRule:先过滤掉故障实例,再选择并发较小的实例;
         * 7.com.netflix.loadbalancer.ZoneAwareLoadBalancer:采用双重过滤,同时过滤不是同一区域的实例和故障实例,选择并发较小的实例。
         */
        @Bean
        public IRule getRule(){
            return new WeightedResponseTimeRule();
        }
    }

    3、在启动类上添加注解 

    @RibbonClient(name = "word-app", configuration = RibbonRuleConfig.class)
    name:服务名称,configuration:加载配置类
    /**
     * @author liangd
     * @since 2021-01-09 17:31
     * 注解作用:
     * 1.@SpringBootApplication    SpringBoot 启动类注解
     * 2.@EnableDiscoveryClient    启用客户端注解
     * 3.@EnableFeignClients       启用声明式服务调用注解
     * 4.@MapperScan               扫描Mapper层接口
     * 5.@RibbonClient             负载均衡客户端注解
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients
    @MapperScan("com.donleo.user.mapper")
    @RibbonClient(name = "word-app", configuration = RibbonRuleConfig.class)
    public class UserApp {
        public static void main(String[] args) {
            SpringApplication.run(UserApp.class, args);
        }
    }
  • 相关阅读:
    使用 RestSharp 调用 WebAPI 接口
    Android Studio 下载安装目录
    多线程之await/async
    ScriptX进行Web打印
    Sqlserver 查询最新修改过的表、过程和视图等
    SqlServer中的bit类型
    .Net 6
    PDA 使用总结
    SQL Server 发布订阅 发布类型详解
    Profile对象
  • 原文地址:https://www.cnblogs.com/donleo123/p/14270481.html
Copyright © 2020-2023  润新知