【SpringCloud组件——Ribbon(负载均衡)】

一、Ribbon主要作用在哪一环节?

流程讲解:

案例依然采用Eureka章节提供的案例,orderService根据服务名称发起请求,请求传达至Ribbon,此时Ribbon从Eureka中心拉取userService服务列表,Ribbon根据负载均衡算法对服务列表进行选择,最后决定将请求发送至哪个userService服务实例。

 二、开启负载均衡

    @Bean
    @LoadBalanced//负载均衡
    public RestTemplate restTemplatest(){
        return new RestTemplate();
    }

使用@LoadBalanced注解后表示RestTemplate以后发送的请求将会被Ribbon进行拦截和处理。

三、Ribbon负载均衡源码分析

 

1.获取拦截到的请求路径;

2.获取主机名(服务名称);

3.根据服务名称找Eureka获取服务列表

4.使用负载均衡算法选择服务实例

5.发送请求并获取返回值

 四、负载均衡策略

 4.1、修改策略

①、在SpringBoot启动类当中添加如下代码指明负载均衡策略(全局生效,不管访问哪个服务都采用此规则):

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

 ②、在配置文件当中配置负载均衡规则(仅对userService服务生效):

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #针对某微服务设置其负载均衡规则

五、 饥饿加载

Ribbon默认采用懒加载,即第一次访问时才会去创建LoadBalancerClient(负载均衡客户端),请求时间会很长(服务列表拉取耗时较长),而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过一下配置开启饥饿加载:

#开启饥饿加载 即程序启动时就加载
ribbon:
  eager-load:
    enabled: true
    clients:
      - userservice

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值