SpringCloud(四)【Ribbon】

SpringCloud(一)微服务介绍
SpringCloud(二)【单体服务及远程调用】
SpringCloud(三)【Eureka注册中心】



一、负载均衡原理

上一篇提到在注入RestTamplate的时候使用了注解@LoadBalanced,自动实现负载均衡,接下来就要讨论它是如何实现负载均衡的。
在这里插入图片描述

二、负载均衡策略

Ribbon的负载均衡规则是通过一个叫做IRule的接口来定义的,每一个子接口都是一个规则。
在这里插入图片描述
下图是各个规则的说明:
在这里插入图片描述
启动一个服务的两个实例,注意需要更改端口号,方式:

一个服务启动两个端口号不同的实例:

  1. 直接更改appplication.yml的端口直接启动;
  2. 复制服务,更改端口号。(选中要启动的服务 -> Ctrl+D -> 配置-Dservice.port=8082
    注意:需要更改服务的名称在这里插入图片描述
    可以看到该服务已经在Eureka注册成功
    在这里插入图片描述

负载均衡规则可以通过配置来进行更改,有两种方式:

  1. 直接通过代码方式在注入的时候进行配置
    @Bean
    public IRule iRule(){
        return new RandomRule();
    }

在这里插入图片描述
连续多次访问,查看两个服务是谁收到请求是随机的:
在这里插入图片描述
在这里插入图片描述
2. 通过yaml文件进行配置

# 配置userservice这个服务的负载均衡规则为RandomRule
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

在这里插入图片描述
重新启动测试后和前一种方式一样,不截图了。

三、懒加载

Ribbon默认采用懒加载的方式,所以首次访问的时候会比较耗时,我们也可以通过配置yml文件来将加载方式改为饥饿加载。

ribbon:
  eager-load:
    enabled: true # 开启饥饿加载方式
    clients: #指定饥饿加载的服务名称,是个list可以配置多个服务
      - userservice
    #  - anotherservice  # 如果其他的服务也需要配置为饥饿加载则在后面添加就行

可以看到服务启动后直接加载(饥饿加载),没有等到使用的时候再加载(懒加载)。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值