Ribbon负载均衡器是什么? - 极悦
首页 课程 师资 教程 报名

Ribbon负载均衡器是什么?

  • 2020-09-23 17:04:40
  • 832次 极悦

各位java程序员想必对负载均衡器并不陌生,但是大家更熟悉的是Nginx这个服务端的负载均衡,在前面也介绍过Nginx概念以及相关知识。下面这篇文章带大家来学习Ribbon负载均衡器是什么,更大的扩充你的java知识库。

Ribbon是一个基于HTTP和TCP的客户端负载均衡器,当使用Ribbon对服务进行访问的时候,它会扩展Eureka客户端的服务发现功能,实现从Eureka注册中心中获取服务端列表,并通过Eureka 客户端来确定服务端是否己经启动。Ribbon在Eureka客户端服务发现的基础上,实现了对服务实例的选择策略,从而实现对服务的负载均衡消费。

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

目前主流的LB方案可分成两类:一种是集中式LB, 即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方;另一种是进程内LB,将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。Ribbon就属于后者,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址,这是Ribbon负载均衡器的作用之一。

接下来我们来让服务消费者去消费服务:我们前面搭建了服务消费者项目,然后就可以使用该服务消费者通过注册中心去调用服务提供者,步骤如下:

1、在该消费者项目中添加eureka的依赖,因为服务消费者从注册中心获取服务,需要连接eureka,所以需要eureka客户端的支持;

image.png

2、激活Eureka中的EnableEurekaClient功能:在Spring Boot的入口函数处,通过添加@EnableEurekaClient 注解来表明自己是一个eureka客户端,让我的服务消费者可以使用eureka 注册中心;

3、配置服务的名称和注册中心的地址:

image.png

4、前面我介绍了服务的发现由eureka 客户端实现,而服务的真正调用由 ribbon实现,所以我们需要在调用服务提供者时使用ribbon来调用:@LoadBalanced

@Bean

public RestTemplate restTemplate () {

return new RestTemplate();

}

加入了Ribbon负载均衡器的支持,那么在调用时,即可改为使用服务名称来访问:

restTemplate.getForEntity("http://01-SPRINGCLOUD-SERVICE-PROVIDER/cloud/hello",

String.class).getBody();

5、完成上面的步骤后,我们就可以启动消费者的SpringBoot程序,main方法运行;

6、启动成功之后,通过在浏览器地址栏访问我们的消费者,看是否可以正常调用远程服务提供者提供的服务。

这篇文章我们学习了Ribbon负载均衡器的概念、作用以及用Ribbon来实现服务真正调用的内容,希望大家都可以学会这些知识,可以对大家的java学习有所帮助。


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交