首页 > 其他分享 >Ribbon

Ribbon

时间:2023-08-01 16:13:12浏览次数:27  
标签:负载 饥饿 IRule 规则 Ribbon 加载

原理

 

Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则:

 

实现

通过定义IRule实现可以修改负载均衡规则,有两种方式:

  代码方式:在order-service中的OrderApplication类中,定义一个新的IRule:

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

  配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则:

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

 

Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。

而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

ribbon:
    eager-load:
        enabled: true  # 开启饥饿加载 
        clients: userservice  # 指定对userservice这个服务饥饿加载

 

总结

Ribbon负载均衡规则

  • 规则接口是IRule
  • 默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询

负载均衡自定义方式

  • 代码方式:配置灵活,但修改时需要重新打包发布
  • 配置方式:直观,方便,无需重新打包发布,但是无法做全局配置

饥饿加载

  • 开启饥饿加载
  • 指定饥饿加载的微服务名称 

 

标签:负载,饥饿,IRule,规则,Ribbon,加载
From: https://www.cnblogs.com/bcboke/p/17596791.html

相关文章

  • Ribbon
    Ribbon1.什么是ribbon?目前主流的负载均衡方案有两种:1.集中式的负载均衡,在消费端和服务方中间使用独立的代理方式进行负载,有硬件的,也有软件的。2.客户端根据自己的请求情况做负载均衡,Ribbon就属于客户端自己做负载均衡springcloudRibbon是基于NetflixRibbon实现的......
  • 1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>
    微服务技术栈一、微服务介绍了解1架构结构案例与springboot兼容关系拆分案例拆分服务拆分-服务远程调用2eureka注册中心Eureka-提供者与消费者Eureka-eureka原理分析Eureka-搭建eureka服务Eureka-服务注册Eureka-服务发现3Ribbon组件负载均衡Ribbon-负载均衡原理Ribbon-负载......
  • Ribbon与Nginx的区别
    一、Ribbon与Nginx的区别我们知道负载均衡有硬件负载均衡与软件的负载均衡方案硬件负载均衡:比如F5、深信服、Array等;软件负载均衡:比如Nginx、LVS、HAProxy等;硬件负载均衡或是软件负载均衡,他们都会维护一个可用的服务端清单,通过心跳检测来剔除故障的服务端节点以保证清单......
  • arcgis pro自定义ribbon
     参考:https://pro.arcgis.com/en/pro-app/2.9/get-started/customize-the-ribbon.htm......
  • springcloud - ribbon简单提点 + 手写轮询算法
    ribbon(依然有人使用,还是很难替换掉)负载均衡+restTemplate实现rpc远程调用新版eureka依赖集成好了ribbon,可以不用重新导入consumer远程调用provider使用到了一个resttemplate类在消费者端的consumer中调用   @Resource   privateRestTemplaterestTemplate;/......
  • Ribbon-饥饿加载
    Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。 【LoadBalanceClient定义了从可用服务列表中选择一个具体的服务实例进行访问的逻辑】而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:ribbon:eager-load......
  • Ribbon负载均衡
    负载均衡流程 IRule决定负载均衡策略 默认ZoneAvoidanceRule。调整负载均衡规则通过定义IRule实现可以修改负载均衡规则,有两种方式:1、代码方式:【全局作用在orderservice无论调用哪一个服务都是用该种负载均衡方式】在order-service中的OrderApplication类中,定义一个新的I......
  • 【SpringCloud】Ribbon
    Ribbon负载均衡原理order-service发起user-service请求,被ribbon进行拦截;ribbon会向注册中心拉取user-service相对应的服务;注册中心返回user-service服务列表;由ribbon的负载均衡机制去选择一个服务进行访问;默认采用的是轮训的机制。负载均衡流程请求示例配置......
  • Ribbon使用实践
    Ribbon是Netflix开源的一个负载均衡客户端库,用于在微服务架构中实现客户端的负载均衡。它可以与服务发现组件(例如Eureka)集成,自动地根据可用的服务实例来分发请求。下面是使用Java代码实现Ribbon入门示例的详细步骤:添加依赖项:在您的Java项目中,添加以下依赖项以使用Ribbon客户......
  • Spring cloud 微服务架构之Ribbon/Fegin连接超时ReadTimeout问题
    问题描述:近期用Springcloud开发微服务架构时候,在服务与服务之间调用调试代码时候,出现链接超时。错误信息:ReadtimedoutexecutingGEThttp://service-batch/batchmanagement/datatransfer/querybyplanid?planid=PL00000102。发生原因:用IDE开发Debug模式调试代码时候,在处理该服......