• SpringCloud学习笔记(8)----Spring Cloud Netflix之负载均衡-Ribbon的负载均衡的策略


    一、 内置 负载均衡策略的介绍的

      IRule的实现类

      

      

    2. 通过代码实现负载均衡

      在第六节Riddom的使用的工程中,随机策略配置类

     
    package com.wangx.cloud.springcloud02consumer.configure;
    
    import com.netflix.loadbalancer.IRule;
    import com.netflix.loadbalancer.RandomRule;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class RandomRuleConfig {
    
        @Bean
        public IRule randomRule() {
            return new RandomRule();
        }
    }
     

      

     
    package com.wangx.cloud.springcloud02consumer.configure;
    
    import org.springframework.cloud.netflix.ribbon.RibbonClient;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @RibbonClient(name = "spring-cloud-provider", configuration = RandomRuleConfig.class)
    public class ProviderConfiguration {
    }
     

      

    说明:只需要简单的2 个配置,就可以指定轮询的算法。
    注意:在RandomRuleConfig 的类里面,加上@Configuration 注解会导致所有的策略都被覆盖。
    原因:如果RandomRuleConfig 被SpringContext 扫描,否则会被@RibbonClients 共用,会覆盖。

     3.  同时使用2 种以上的不同策略算法

      方法1:移除算法类的@Configuration注解

      方法2: 使用@ComponentScan指定扫描路径,默认是启动类包及其子包下

      方法3:将它移到主类的外面,让启动类扫描不到

      说明:总之就是不要让SpringContext扫描到即可

    4. 通过配置文件实现不同策略的算法

      配置文件添加

      

    #设置策略
      #spring-cloud-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

      //提供者1用随机策略
      spring-cloud-provider2.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

      //使用自定义的请求策略
      spring-cloud-provider.ribbon.NFLoadBalancerRuleClassName=com.wangx.cloud.configuration.WangxCustomRuleCustomRule
    #格式为:应用名.ribbon.NFLoadBalancerRuleClassName=xxx

    注意:当使用自定义策略时需要继承AbstractLoadBalancerRule抽象类。实现该类的抽象方法。

    原文 SpringCloud学习笔记(8)----Spring Cloud Netflix之负载均衡-Ribbon的负载均衡的策略

  • 相关阅读:
    js全选 反选 不选 代码示例。
    前端超级好用a标签跳转带锚点效果
    10分钟倒计时简易
    点赞投票+1简单jq代码
    登录注册密码可见与不可见jquery简易效果开发
    JS调用函数内部变量有以下两种方法:
    关于clipboard.js复制图片以及文本的随笔
    这是我的第一个博客,我叫小白菜!
    前端之路(一)之W3C是什么?
    知识普及
  • 原文地址:https://www.cnblogs.com/xiaoshen666/p/10844177.html
Copyright © 2020-2023  润新知