您的位置 首页 > 德语词汇

ribbon是什么意思?用法、例句 SpringCloud实战之负载均衡(Ribbon)

大家好,今天来为大家分享ribbon是什么意思?用法、例句的一些知识点,和SpringCloud实战之负载均衡(Ribbon)的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

1、SpringCloudRibbon是基于NetflixRibbon实现的一套客户端负载均衡的工具。

2、简单的说Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起,Ribbon的客户端组件提供一系列完整的配置项如:连接超时、重试等等。就是在配置文件中列出LoadBalancer(简称LB:负载均衡)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询、随机连接等等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。

ribbon是什么意思?用法、例句 SpringCloud实战之负载均衡(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)的介绍到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023