Ribbon(负载均衡)概述与初级配置

一: Ribbon概述

1、Ribbon是什么

1、Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。

可参考github资料:https://github.com/Netflix/ribbon/wiki

2、通俗的讲:如同大型超市中的多个收银台,客户在结账的时候肯定会排人少的那个收银台,这个就是客户端的负载均衡就是Ribbon做的事情

3、简单的说,Ribbon是Netflix发布的开源的项目,主要功能是提供客户端的软件负载均衡算法(如简单轮咨询,随机连接等等),将Netflix的中间层服务连接一起,Ribbon客户端注解提供一系列完善的配置项如连接超时,重试等。就是在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动的给你基于某种规则(如简单轮咨询,随机连接等等)去连接机器(如超市结账),也很容易使用Ribbon自定义负载均衡算法。

2、Load Balancer[ləud ˈbælənsə](负载均衡)

1、微服务或分部式集群中的经常使用的一种应用

2、负载均衡就是简单的说将用的请求平摊分配到多个服务器上,从而到达系统的HA.常见的负载均衡软件Nginx/LVS等等

3、相应的中间件,如Dubbo和SpringCloud中均给我们提供了负载均衡,SpringCloud的负载均衡的算法可自定义

①) 集中式LB(Load Balancer)(扩展)

1、即在服务的消费端和提供端之间使用独立的LB设施如(硬件:F5/软件:nginx),由该设备负责把访问请求通过某种策略转发到服务的提供端。但是F5太贵了,一般公司用不起

②)进程内LB(Load Balancer)(扩展)

1、将LB逻辑集成到消费端,从而消费端从服务注册中心获取那些地址可以,然后自己在从这些地址中进行选择出一个合适的服务器(如:顾客在超市买单那个收银台少就去那个)

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

二:初级配置Ribbon

1、在客户端编辑POM.xml文件

1、打开工程chserivcecloud-consumer-dept-80的pom.xml文件

2、进行添加配置

Ribbon(负载均衡)概述与初级配置

2、修改application.yml追加Eureka服务注册的地址

1、也就是现在不能直接去找8001(提供端),要通过Eureka(7001/7002/7003)

2、添加如下配置

Ribbon(负载均衡)概述与初级配置

3、对该工程(80)中的ConfigBean进行配置

1、要求客户在访问的时候只带负载均衡

2、所有的开启在该工程(80)ConfigBean类配置注解@LoadBalanced

3、从而完成通过微服务名称在Eureka上找到并且访问

Ribbon(负载均衡)概述与初级配置

4、对该工程(80)中的主启动类进行配置

1、在该工程的DeptConsumer80_Ch类上加注解@EnableEurekaClient进行与Eureka整合

Ribbon(负载均衡)概述与初级配置

5、修改客户端的访问类

1、在该工程(80)的访问类(DeptController_Consumer)把REST_URL_PREFIX改成微服务对外曝光的名称(大写)

Ribbon(负载均衡)概述与初级配置

6、测试

1、先启动Eureka的3个集群服务(7001/7002/7003)在启动提供端(chserivcecloud-provider-dept-8001)并注册到Eureka中

2、在启动消费端chserivcecloud-consumer-dept-80

①)访问:

1、http://localhost/consumer/dept/get/2

2、http://eureka7002.com:7002/

3、Ribbon和Eureka整合后consumer可以直接调用服务不用去关心接口和地址

Ribbon(负载均衡)概述与初级配置

Ribbon(负载均衡)概述与初级配置

猜你喜欢

转载自blog.csdn.net/weixin_34221773/article/details/86716203
今日推荐