精华内容
下载资源
问答
  • ribbon负载均衡策略配置
    2019-11-03 15:28:47

    一 代码位置

    https://github.com/cakin24/spring-cloud-code/tree/master/ch5-2

    二 启动

    1 启动Eureka中心

    2 启动两个服务端实例,实例端口分布为7071和7073和7076

    3 启动1个Ribbon客户端实例

    三 测试

    浏览器输入: http://localhost:7777/add?a=100&b=306

    我们配置的策略是随机,观察是否随机选择服务

    From Port: 7073, Result: 406
    From Port: 7071, Result: 406
    From Port: 7076, Result: 406
    From Port: 7073, Result: 406
    From Port: 7071, Result: 406
    From Port: 7071, Result: 406
    From Port: 7073, Result: 406
    From Port: 7076, Result: 406
    From Port: 7071, Result: 406
    From Port: 7073, Result: 406
    From Port: 7076, Result: 406
    From Port: 7071, Result: 406
    From Port: 7076, Result: 406

    结果确实随机选择实例了。

    更多相关内容
  • Ribbon 负载均衡策略配置

    万次阅读 2018-10-26 10:51:45
    文章目录Ribbon 的负载均衡策略全局策略设置增加 Ribbon 负载均衡策略配置类基于注解的针对单个服务的 Ribbon 负载均衡策略注解方式配置文件方式   这个负载策略配置说白了就是让 Ribbon 这个客户端负载均衡器怎么...

      这个负载策略配置说白了就是让 Ribbon 这个客户端负载均衡器怎么进行访问服务提供者列表。是轮流访问?随机访问?权重?等。

    Ribbon 的负载均衡策略

    策略类命名说明
    RandomRule随机策略随机选择 Server
    RoundRobinRule轮训策略按顺序循环选择 Server
    RetryRule重试策略在一个配置时问段内当选择 Server 不成功,则一直尝试选择一个可用的 Server
    BestAvailableRule最低并发策略逐个考察 Server,如果 Server 断路器打开,则忽略,再选择其中并发连接最低的 Server
    AvailabilityFilteringRule可用过滤策略过滤掉一直连接失败并被标记为 circuit tripped 的 Server,过滤掉那些高并发连接的 Server(active connections 超过配置的网值)
    ResponseTimeWeightedRule响应时间加权策略根据 Server 的响应时间分配权重。响应时间越长,权重越低,被选择到的概率就越低;响应时间越短,权重越高,被选择到的概率就越高。这个策略很贴切,综合了各种因素,如:网络、磁盘、IO等,这些因素直接影响着响应时间
    ZoneAvoidanceRule区域权衡策略综合判断 Server 所在区域的性能和 Server 的可用性轮询选择 Server,并且判定一个 AWS Zone 的运行性能是否可用,剔除不可用的 Zone 中的所有 Server
    • 默认为轮询策略

    全局策略设置

    增加 Ribbon 负载均衡策略配置类

    /**
     * @Author:大漠知秋
     * @Description:Ribbon 全局的负载均衡策略配置类
     * @CreateDate:6:32 PM 2018/10/25
     */
    @Configuration
    public class RibbonGlobalLoadBalancingConfiguration {
    
        /**
         * 随机规则
         */
        @Bean
        public IRule ribbonRule() {
            return new RandomRule();
        }
    
    }
    

    基于注解的针对单个服务的 Ribbon 负载均衡策略

      这里把上一步的的全局配置给删掉。

    注解方式

      增加一个针对单个服务的 Ribbon 负载聚恒策略配置类:

    /**
     * @Author:大漠知秋
     * @Description:Ribbon 随机负载均衡策略配置类
     *                  那个服务引用就作用在那个服务上面
     *                  在启动类上方使用 @RibbonClient 引用
     * @CreateDate:7:04 PM 2018/10/25
     */
    @Configuration
    /** 用来标记使用的注解,方便排除或者引用 **/
    @AvoidScan
    public class RibbonRandomLoadBalancingConfiguration {
    
        @Resource
        IClientConfig clientConfig;
    
        @Bean
        public IRule ribbonRule(IClientConfig clientConfig) {
            return new RandomRule();
        }
    
    }
    
    • **IClientConfig:**针对客户端的配置管理器。

      在主启动类上方做针对单个服务的负载均衡策略:

    /** 配置针对单个服务的 Ribbon 负载均衡策略 **/
    @RibbonClient(
            name = "demo-goods", configuration = RibbonRandomLoadBalancingConfiguration.class
    )
    /** 此处配置根据标识 @AvoidScan 过滤掉需要单独配置的 Ribbon 负载均衡策略,不然就会作用于全局,启动就会报错 */
    @ComponentScan(
            excludeFilters = @ComponentScan.Filter(
                    type = FilterType.ANNOTATION, value = AvoidScan.class
            )
    )
    

    配置文件方式

      我个人也不太喜欢上方的那种注解方式针对单个服务的负载均衡策略,下面是配置文件的方式:

    • .ribbon.*
    ### 针对单个服务的 Ribbon 配置
    demo-goods:
      ribbon:
        # 基于配置文件形式的 针对单个服务的 Ribbon 负载均衡策略
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    

      结果:

    结果

    源码:https://github.com/SlowSlicing/demo-spring-cloud-finchley/tree/Ribbon负载均衡策略

    展开全文
  • Ribbon负载均衡策略

    2022-04-06 18:41:44
    1:首先呢,先上流程图 2:如何改变它得负载均衡规则(有两种方式...(2):在yml文件中进行配置(这样得配置可以针对某一个服务改变他得负载均衡策略,以下图中就只针对了userservice服务及逆行配置,也就是说在本.

    1:首先呢,先上流程图

     

    2:如何改变它得负载均衡规则(有两种方式)

    (1):在配置类中注入一个新的IRule(举例为随机均衡策略,当然这种为全局进行配置,也就是该服务中得分所有规则都将采用配置得负载均衡规则。)

    @Bean
    public IRule randomRule(){
        return new RandomRule();
    }
    

    (2):在yml文件中进行配置(这样得配置可以针对某一个服务改变他得负载均衡策略,以下图中就只针对了userservice服务及逆行配置,也就是说在本服务下,只有user service采取随机负载均衡策略,其他得服务还是轮询负载均衡策略。

    userservice:
      ribbon:    
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则 
     

    3:饥饿加载

    Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。 而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

    ribbon:
      eager-load:
        enabled: true # 开启饥饿加载
        clients:  # 指定饥饿加载得服务名称。(因为他是java.util.List<String> ,所以他不是一个,可以采用下面这种方式)
          - userservice

    展开全文
  • 文章目录1 Ribbon基本使用2 Ribbon负载均衡策略2.1 通过配置文件修改负载均衡策略2.2 通过代码的方式修改负载均衡策略 1 Ribbon基本使用 ​ 通常上我们讲的负载均衡⼀般分为服务器端负载均衡和客户端负载均衡。...

    1 Ribbon基本使用

    ​ 通常上我们讲的负载均衡⼀般分为服务器端负载均衡和客户端负载均衡。服务器端负载均衡,⽐如Nginx、F5这些,请求到达服务器之后由这些软件或者硬件来进行负载均衡,他们根据⼀定的算法将请求路由到⽬标服务器处理。客户端负载均衡,⽐如我们要说的Ribbon,服务消费者客户端会有⼀个服务器地址列表,调⽤⽅在请求前通过⼀定的负载均衡算法选择⼀个服务器进⾏访问,负载均衡算法的执⾏是在请求客户端进⾏。

    ​ Ribbon是Netflix发布的负载均衡器。Nacos⼀般配合Ribbon进⾏使⽤,Ribbon利⽤从Nacos中读取到服务信息,在调⽤服务提供者提供的服务时,会根据⼀定的算法进⾏负载。

    ​ 下图是一个服务端负载均衡的图例:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XjrID65p-1653808065692)(D:\developsoftware\mayun\note\study-note\java\springcloud\images\image-20220529135551949.png)]

    展开全文
  • Ribbon负载均衡策略 策略类 命名 说明 RandomRule 随机策略 随机选择 Server RoundRobinRule 轮训策略 按顺序循环选择 Server RetryRule 重试策略 在一个配置时问段内当选择 Server 不成功,则一直尝试选择一个...
  • 配置类修改负载均衡策略 第一步:新建一个不会被@ComponentScan组件扫描到的包,如:com.ribbon 第二步:在该包下新建自己的负载均衡算法的规则类 package ribbon; import com.netflix.loadbalancer.IRule; ...
  • 总结:把要用的 策略 交给spring管理,在配置类里设置 负载均衡策略。 如果要自己写策略,则继承IRule 接口,重写里面的三个方法
  • 在Spring cloud中配置Ribbon负载均衡策略Ribbon默认情况下是轮询策略。
  • 操作比较简单,直接在Ribbon的项目内声明一个配置类,这样就可以启动RandomRule,其他的负载均衡策略启动方式同理。 @Configuration public class RibbonConfiguration { @Bean public IRule defaultLBStrategy()...
  • 负载均衡通器常有两种实现手段,一种... 然而客户端负载均衡也有其缺点,如果配置不当,可能会导致服务提供者出现热点,或者压根就拿不到任何服务的情况,所以我们本文就来了解一下这 7 种内置负载均衡策略的具体规则。
  • Ribbon负载均衡策略

    千次阅读 2021-03-30 20:58:08
    一、Ribbon负载均衡 如上图所示,负载均衡就是避免单个服务的实例处理大批量请求而导致其他实例空闲,造成资源浪费。负载均衡分为客户端、服务端的负载均衡,它们最大的区别在于维护服务器的清单保存的位置不同,...
  • 作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡...
  • 官方文档指出:自定义的负载均衡配置类不能放在 @componentScan 所扫描的当前包下及其子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,也就是说我们达不到特殊化定制的目的了; 要求自定义的...
  • 一、Ribbon中的负载均衡策略1、Ribbon中支持的负载均衡策略 AvailabilityFilteringRule:过滤掉那些因为一直连接失败的被标记为circuittripped的后端server,并过滤掉那些高并发的的后端server(activeconnections...
  • Spring Cloud Ribbon负载均衡策略自定义配置 上一篇文章Spring Cloud Ribbon 消费服务 实现客户端负载均衡中使用ribbon实现了客户端负载均衡,我们知道ribbon默认负载均衡算法是轮询,ribbon实际上提供了很多负载...
  • Spring Cloud 移除 Ribbon后 使用LoadBalancer 如何实现负载均衡
  • 在看SpringCloud官方文档的时候,发现Ribbon可以通过配置文件方式来修改负载均衡策略,但是实际测试不生效。 yml配置如下: ``` # 服务提供者应用名称 sc-ribbon-producer: ribbon: # 指定服务提供者负载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,087
精华内容 5,634
关键字:

ribbon负载均衡策略配置