首页 /  技术专区  /  SpringCloud 宽屏模式 >

Ribbon:负载均衡及Ribbon

ribbon是什么?

●Spring Cloud Ribbon是基FNetflix Ribbon实现的一套客户端负载均衡的工具。

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


ribbon能干嘛?

●LB,即负载均衡(Load Balance) ,在微服务或分布式集群中经常用的一种应用。

●负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA (高可用)。

●常见的负载均衡软件有Nginx, Lvs 等等

●dubbo、SpringCloud中均给我们提供 了负载均衡,SpringCloud的负载均衡算法可以自定义

●负载均衡简单分类:

。集中式LB

■即在服务的消费方和提供方之间使用独立的LB设施,如Nginx:反向代理服务器!,由该设施负责把访问请求通过某种策略转发至服务的提供方!

。进程式LB

■将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选出一个合适的服务器。

■Ribbon就属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址!



不能光说不练,我们进入到代码部分:

1.都说了Ribbon是一套客户端的负载均衡,所以肯定是出现在消费者层面,所以我们来到springcloud-consumer-dept-80,第一步添加依赖。

image.png

<!-- Ribbon -->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-ribbon -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

<!-- Eureka -->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

2.配置application.xml文件,配置Eureka配置。

image.png

#Eureka
eureka:
  client:
    register-with-eureka: false #不向Eureka注册自己
    service-url:
      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/

3.修改启动类,添加注解@EnableEurekaClient

image.png

4.修改ConfigBean,添加Ribbon注解@LoadBalanced

image.png

5.修改DeptConsumerController类,修改原来地址前缀,从原来的写死的地址,改为现在服务名。

image.png

image.png

6.依次启动三个服务注册中心,7001、7002、7003,和服务提供者8001,再启动消费者80。

image.png

7.调用接口测试。

image.png


头像
0/200
图片验证码