大家好,今天来为大家分享ribbon是什么意思?用法、例句的一些知识点,和SpringCloud实战之负载均衡(Ribbon)的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
1、SpringCloudRibbon是基于NetflixRibbon实现的一套客户端负载均衡的工具。
2、简单的说Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起,Ribbon的客户端组件提供一系列完整的配置项如:连接超时、重试等等。就是在配置文件中列出LoadBalancer(简称LB:负载均衡)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询、随机连接等等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。
1.1.1.1.1.1.1.1Ribbon实现负载均衡
Ribbon实现负载均衡我们只需要在消费者模块配置好即可,这里在我们springcloud-consumer-dept-80这个模块里做些配置,还是原来的套路:
第一步:引入依赖
pom中引入依赖,之前我们的消费者方面只是远程访问了我们的提供者的服务,现在我们需要从注册中心去拿对应的服务,所以增加依赖:
<!--引用eureka客户端用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
需要注意的是:原本我是需要引入Ribbon的依赖包,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
由于我们父类spring-cloud-dependencies这个依赖中的spring-cloud-commons已经封装了,如下:
所以我们这里不需要再引入依赖,如果是单独微服务,我们则需要引入该依赖包,这里我们就不需要引入这个包了,不然引入了会报冲突
第二步:修改配置
application.yml文件添加eureka注册服务,将服务注册到注册中心去,从注册中心去拿对应的服务,配置:
register-with-eureka:false#不向Eureka注册自己
defaultZone:http://eureka7001.com:7001/eureka/,http://eureka7001.com:7002/eureka/,http://eureka7001.com:7003/eureka/
RestTemplate之前是没有做负载均衡,直接用@bean实例化:
现在我们配置负载均衡,只需要引入一个注解@LoadBalanced,这个注解是从
spring-cloud-commons的依赖包中获取,如:
第三步:启用服务
这里我们在启动类中启用eureka客户端的服务,引入注解@EnableEurekaClient
@EnableEurekaClient//启动eureka客户端
publicclassDeptConeumer_80{
publicstaticvoidmain(String[]args){
SpringApplication.run(DeptConeumer_80.class,args);
第三步:修改访问接口的api
服务springcloud-consumer-dept-80工程,Controller类中修改我们的访问接口从我们发服务名称中获取,将原来的
http://localhost:8001/dept/list改成http://SPRINGCLOUD-PROVIDER-DEPT/dept/list
说明:引入负载均衡需以服务名称作为请求,从注册服务中获取服务,如:
启动服务,通过消费者服务访问:http://localhost/consumer/dept/list
也是可以正常访问服务,只是这里是负载均衡的方式访问,看不出来负载均衡的效果,下面我们将服务提供者做集群配置,则就可以了看到访问效果了。
1.1.1.1.1.1.1.2服务提供者集群配置
第一步:复制三个提供者服务
我们将我们的服务提供者模块直接复制成三个,如:
将对应的配置端口都修改一下,为了能看到更好的效果,我们将对应的数据库也指定对应的数据库,每一个服务对应自己的数据库:
通过消费者去访问提供者启动的三个服务:
这里会发现来回刷新页面会轮询的访问三个提供者的服务,原因是我们在没有配置访问模式情况默认是轮询模式,比如随机模式都是可以自行配置。
第二步:关闭服务(模拟宕机)
现在,我们关掉8001和8003两个提供者的服务,表示这两个服务都挂了,然后再去访问:
1.1.1.1.1.1.1.3Ribbon自定义负载均衡算法
publicIRulemyRule(){
returnnewRandomRule();
Feign是声明式的webservice客户端,他让微服务之间的调用变得更加简单了,类似于controller调用service,springCloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。
Feign主要是社区版的,大家都习惯面向接口编程,这个是很多开发人员的规范,调用微服务访问两种方法:
1、通过微服务名称访问【Ribbon】
2、通过接口和注解访问【Feign】
使用feign其实与ribbon一样,feign只是再包了一层满足接口的调用方式,增加了代码可读性,但是性能变低了。
和上面一样构建一个springcloud-consumer-dept-feign工程
关于ribbon是什么意思?用法、例句,SpringCloud实战之负载均衡(Ribbon)的介绍到此结束,希望对大家有所帮助。