简单说一下微服务springcloud里面的Ribbon

在说Ribbon先介绍一个小细节,就是当我们想要重新部署某个服务的时候,比如服务端和客户端或者注册中心也好,我们想要部署多个它们的服务,可以直接先copy一份它们的服务器,然后直接修改端口,然后就直接点击运行,就可以完成多个服务器同时部署了。

先说一下Ribbon是什么,Ribbon就是在你的springcloud运行的时候,客户端有数据需要上传上来或者客户有一些请求发送过来,Ribbon就负责处理这些请求,并且及时调用相关的服务给客户端,这就是Ribbon的作用

那我们应该在哪里引入Ribbon呢?

首先我们要知道,Ribbon是帮助客户端处理请求并且完成调用相关服务的,所以我们应该把Ribbon在客户端进行配置,然而首先在jar包这一块我们可以留意一下,我们其实是不需要另外导入一个jar包的
在我们导入Eureka的jar的时候,已经导好了Ribbon的包
在这里插入图片描述

这是连带着的。

这里要提一点如何配置Ribbon呢,这个问题就类似于所有如何配置springcloud组件的问题,那springcloud组件都是如何配置的呢?只有三步!
1.引入启动器。引入启动器的意思就是你要建立一个模块,这个模块就是客户端,服务端或者注册中心模块,然后在这个模块上写上你当前所需要的功能的配置。
2.覆盖默认配置。有些配置默认已经为你配置好了,比如心跳,或者其他,你需要去修改配置,重新配置,在yml文件里面进行。
3.在引导类上启用组件。引导类就是你创建模块的时候它自动生成了一个main方法类,这个就是引导类,你需要在里面配置上你所要启用的功能,然后让它进行部署服务器。

这里要配置Ribbon,前两步我们已经完成了,因为jar包也引入了,启动器就在客户端模块里面,而且我们也不需要去覆盖默认配置,接下来就是在引导类上启用我们的组件了,

然而Ribbon比较特殊,我们不需要在引导类上面进行配置,而是我们在引导类的RestTemplate方法上面进行配置就可以了。
在这里插入图片描述
本来这样已经是可以的了,我们照这样去执行,就可以默认启动了Ribbon负载均衡器了,但是由于controller还没写好,因为我们之前写的是这样,
在这里插入图片描述
在服务实例对象那里,我们选择了输入参数为0,等于调用第0个服务信息,如果我们指定去调用哪个服务信息的话,那我们之前配置的Ribbon负载均衡器就没有作用了,因此红框圈住那一行和上面那一行都可以删除,DiscoveryClient的封装方法的作用是拉取服务信息,它相关配置的方法就是拉取指定服务信息的信息,所以可以都删了。

修改后方法如下:
在这里插入图片描述

url那里的地址是怎么写出来的呢?一开始是直接复制服务端的地址,整个复制过来写在上面,所以多了后面的/user/,本来中间是一个localhost:8081,但是后来改成了service-provider,这个是服务端的名字,访问这个就可以直接访问服务端。

我们配置的Ribbon的作用就是接收客户端的请求,并且对服务端的信息进行接收数据和调配,目前我们Ribbon已经配置好了(也就是在引导类的RestTemplate方法这一块上面的注释)然后我们新建多一个服务端的部署,并且两个端口分别为8081和8082

问题来了,如果我们运行客户端的话,客户端向注册中心发送请求并且调用服务端的数据信息,那我们服务端这边有两个端口,我该如何知道它调用的是哪一个端口呢?

通过建立一个测试类去测试,看到它调用的端口是有规律的,是按序号顺序循环:
在这里插入图片描述
既然它是有顺序的,你如果不想要服务端是根据端口号有顺序地被调用地话,你可以设置它是随机的:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值