微服务教程4:spring-cloud 的Ribbon管家的用法

上面3个教程中,咱提供了 consumer , 注册中心, provide 这三方的内容

这一集解释Ribbon管家式的Ribbon, 当provide 业务繁杂时, 或者请求频繁时,此时就扩展为集群来支持业务的提供,所以此时consumer应该怎么处理与provide的关系呢,调用那一个服务器的provide呢?上图解释

在这里插入图片描述
当一个consumer 要怎么处理与provide的关系,怎么均衡请求provide的时,有两种处理方式

  1. 可以使用负载均衡
    在这里插入图片描述
  2. 就是咱所谓的Ribbon管家式处理,使用Ribbon,以Rebbon来管理provide,Ribbon就清楚手里有多少位后宫,然后给consumer 选出中意的后宫娘娘来侍寝;

Ribbon内置7种负载均衡算法,通过IRule接口的choose()方法来实现不同的负载均衡算法,我们通过自己实现choose()方法的方式来达到自定义负载均衡策略的目的
在这里插入图片描述

现在开始来试试Rebbon的效过
1, 检测上面写的provide的代码
2, 检测pom.xml 是否需要依赖 Ribbon集成在 spring-cloud-starter-eureka 这个依赖中,所以不需要在导入依赖
3, application.yml 本身就是默认为true,所以可以不需要配置

现在复制一份provide ,作为集群使用
在这里插入图片描述
1, 改端口
2, 这里的application.yml provide 和provide2 名字注意要一致,这是相对于10086 一样,一个入口,客服不一样(这里就是负载均衡的关键点)
3, 改好以后,在provide的方法中打个日志,打印出当前执行的provide是哪个,是否负载均衡了
4,在加入计数器,查看当前负载均衡的执行算法
5, 然后相互启动, 注册中心启动,然后启动2个provide 注册到注册中心,然后在启动consumer
6, 然后在查看启动的日志,且调用 consumer的接口,在consumer中多次调用provide的服务
7, Ribbon默认的计算方式为轮询,雨露均沾
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

测试结果:有规则的轮询交叉调用

在这里插入图片描述

在这里插入图片描述

Ribbon 的规则 和算法:RoundRobinRule.java 默认的轮询规则
loansbalancer规则地址

在这里插入图片描述
更换策略的如何做 :
更改consumer的Ribbon 管家配置

hero-eureka-provide: ## 指定服务名,这个名字就是provide 服务的名字
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule ## 指定规则 这个规则就是从下图片的地址 选择你需要更改的规则,然后改下规则类就ok 【RandomRule】

在这里插入图片描述
在这里插入图片描述
修改好后,重启consumer
测试 :运行测试consumer 的地址,在查看provide的日志,输出是无规则的随机,轮询是有规则的,交叉调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ribbon 结算,下一篇为:spring cloud 的 Zuul 网关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java 凯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值