Ribbon(负载均衡器)--SpringCloud的组件

目录

目前主流的负载方案分为以下两种:

一、Ribbon是什么?

二、Ribbon的主要功能

 三、Ribbon负载均衡策略

 四、实现

4.1、pom.xml

 4.2、写个配置类,注入RestTemplate,并加注解@LoadBalanced,表示拦截所有RestTemplate发出的请求。

 4.3、Ribbon会自动根据指定的算法来实现负载均衡。


目前主流的负载方案分为以下两种:

  • 集中式负载均衡,在消费者和服务提供者中间使用独立的代理方式进行负载,有硬件的(比如 交换机,F5),也有软件的(比如 Nginx)。
  • 客户端根据自己的请求情况做负载均衡,Ribbon 就属于客户端自己做负载均衡。

一、Ribbon是什么?

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

二、Ribbon的主要功能

主要功能是提供客户端(服务消费者)的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer(简称LB)获取到服务提供的所有机器实例,Ribbon会自动基于某种规则、算法去调用这些服务。Ribbon默认提供 很多种负载均衡算法(负载均衡策略),例如轮询、随机 等等。

  • Load Balancer(简称LB):简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。

 三、Ribbon负载均衡策略

负载均衡接口:com.netflix.loadbalancer.IRule

  •  这里只说两个负载均衡策略:轮询策略、随机策略。
  • 轮询策略com.netflix.loadbalancer.RoundRobinRule:该策略实现按照线性轮询的方式依次选择实例的功能。具体实现如下,在循环中增加了一个count计数变量,该变量会在每次轮询之后累加并求余服务总数。

 

  • 随机策略com.netflix.loadbalancer.RandomRule:该策略实现了从服务清单中随机选择一个服务实例的功能。

  •  如果上面看着费劲,那来个简单的:
  • 随机策略:

  • 轮询策略:  

 四、实现

  • 使用技术:Ribbon + RestTemplate。

4.1、pom.xml

  • nacos里面已经集成了ribbon的依赖,我们这里直接用的nacos的依赖,所以不用在引入ribbon依赖。

 4.2、写个配置类,注入RestTemplate,并加注解@LoadBalanced,表示拦截所有RestTemplate发出的请求。

 4.3、Ribbon会自动根据指定的算法来实现负载均衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值