springcloud之ribbon

我是个小菜鸡,写了一个系列,面向初学者,有什么错误忘大佬们及时指出加以改正,这个系列主要有eureka、ribbon、feign、hystrix、gateway,简单的搭建与使用

Ribbon

上一篇链接:https://blog.csdn.net/weixin_42699857/article/details/103697462
我是在这个基础上继续写demo的

一、什么是ribbon

负载均衡,与eureka配合使用,ribbon自动从eureka中获取服务信息,在调用服务节点提供的服务时,进行合理的负载均衡

1、 服务调用

不需要引入太多外部类,eureka内部集成,可以直接使用

首先我们新建一个测试的controller,这里我用一个简单的表格做实验,数据库用mysql

在这里插入图片描述

PreductServer的controller里面写一个方法进行测试

现在我们可以测试一下页面上的返回数据

在这里插入图片描述

OrdeServerr里面进行比对测试代码

最开始我们如果要在orderServer里面调用prudectServer的接口时要这样拿到

在这里插入图片描述

这个在上一个模块,springcloud之eureka里面有讲到过,那么现在我们要改一下这样的方法,因为有点麻烦,我们直接使用ribbon用那么调用,先改一下orderServer的启动类

在这里插入图片描述

再修改一下controller里面的方法

在这里插入图片描述

现在我们再启动一下orderServer,看看是否调用了prudectServer

在这里插入图片描述

2、 负载均衡

在这里插入图片描述

客户端— ---服务端A/服务B/服务C等等,那么负载均衡就是再转发到各个微服务之前添加负载均衡器,由负载均衡器来去挑选,这个请求应该发送到哪一个服务上,

那么ribbon是一个典型的客户端负载均衡器,他首先拿到请求,根据内部算法进行计算,获取本次请求的有效地址

下面进行测试demo:

第一步,我们准备两个prudectserver进行测试,还用刚才我们改过的order的controller,两个prudectserver除了端口不一样其他完全一样,一个端口9091,一个9081

在这里插入图片描述
这个我们启动以后能看到现在信息被做了修改

在这里插入图片描述

现在我们再orderserver里面调用一下这两个接口

第一次进来的时候看到这个IP是这个

在这里插入图片描述

点击刷新发现IP变了

在这里插入图片描述

我们一直点刷新就会发现这个一直在变,那么多个服务端也一样,现在我们就能发现,eureka内置的负载均衡ribbon就是不断地再各个服务之间来回切换,从A切换到B,再切换到A一直反复,这个就是ribbon的客户端负载均衡,即轮询策略,一个节点一次,当然这个也可以切换

在这里插入图片描述

关于策略选择

1、 如果每台机器配置差不多,一般我们轮询策略用的多(默认),不建议修改

2、 如果机器差异比较大,建议按照实际情况选择权重策略

策略修改

修改比较简单,不粘贴代码了,规则就是

   服务名称 – ribbon –

NFLoadBalancerRuleClassName: 策略

比如我的prudectServer就是

prudect-client;

   ribbon:

   NFLoadBalancerRuleClassName: 策略

3、 重试机制

那么如果消费者通过ribbon服务发送到A,A网络不稳定,那么这种情况怎么办,ribbon里面有一个重试机制,请求连接超时时间,返回数据时间,超过时限立马把请求发送到B

我们现在来模拟一下重试机制

首先再orderserver里面引入pom支持

在这里插入图片描述

然后配置文件上打日志

在这里插入图片描述

现在我们正常启动orderserver以后依然可以链接9091、9081两个端口,那么,现在我们把9091端口断开,模拟服务器挂掉,现在我们刷新就会发现,每一次走到9081的时候正常,走到9091的时候就会报错

在这里插入图片描述
在这里插入图片描述
模拟完毕,我们现在开始进行配置重试机制

在这里插入图片描述

现在我们全部重启以后依然断开9091端口,刷新orderServer的url,第一次刷新以后是9081端口正常,第二次的话按照轮询策略应该是9091,断开9091以后应该报错,那么我们刷新以后发现依然是9081,现在我们反过头来看日志

在这里插入图片描述

这里就开始重新连接了

第二部分over

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冯囧囧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值