SpringCloud之Ribbon组件

目录

Ribbon是什么

负载均衡的简单分类

Ribbon工作原理

如何更改Ribbon默认算法


 

Ribbon是什么

 

Ribbon是一套客户端负载均衡工具 

其实现原理是在配置文件中列出LoadBalancer(负载均衡)的所有机器,Ribbon会自动帮你基于某种规则(简单轮询,随机连接)等去连接这些机器,我们也可以很容易的自定义Ribbon的负载均衡算法

 

 

负载均衡的简单分类

 

负载均衡通过将用户的请求平摊分配到多个服务上,达到系统的HA(高可用) 

  • 集中式LB

在服务的消费方和提供方之间是有独立的负载均衡器,如Nginx,由该设施负责把访问请求通过某种策略转发至服务的提供方

  • 进程式LB

它只是一个类库,集成与消费方进程,消费方通过它来获取到服务提供方的地址。Ribbon属于进程式负载均衡器

 

 

Ribbon工作原理

 

 

 如何更改Ribbon默认算法

 

首先Ribbon默认使用的是简单轮询。

修改算法分两种情况,第一种是你用其他Ribbon算法,第二种是完全使用你自己定义的算法。

 

使用Ribbon提供的其他算法

使用其他Ribbon算法你需要在客户端的ConfigBean类中往spring容器中注入一种特定的Ribbon算法规则即可。另外,你需要在RestTemplate上开启负载均衡的注解

 

自定义负载均衡算法

如果你想完全自定义算法。首先需要在启动类的上一级新建一个配置类,不能和启动类同级

其次,仍需确保RestTemplate开启了负载均衡的支持

 

然后在DIYRibbon文件夹中新建一个config配置类,比如叫KuangRule,里面写个方法,返回自定义的算法DiyLB。

写完再在DiyRibbon文件夹下新建一个具体的算法类,里面写DiyLB算法的具体实现

最后,在项目的启动类下加上@RibbonClient注解,括号里写生产者服务名+ 自定义配置类的类路径

启动测试,下面用随机算法举例,当然之所以使用的db_source会变是因为,我搞了3个提供方,每个提供方对应一个数据库~

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值