Ribbon
分类:
文章
•
2025-01-25 23:38:10
定义
- Ribbon是基于Http和TCP的客户端的负载均衡工具
- 它不像spring cloud服务的注册中心,配置中心,API 网关那样独立部署,但是它几乎存在于每个spring cloud微服务中,包括feign提供的声明式的服务调用也是基于Ribbon实现的
- ribbon默认提供很多种负载均衡的算法
- 注释:客户端是基于服务端的,是调用服务端的微服务
负载均衡解决方案
集中式负载均衡
- 即在consumer 和provider之间 使用独立的负载均衡的设施(硬件F5,软件nginx),由该设施将请求通过某种策略转发至provider
进程内的负载均衡
- 将负载均衡逻辑集成到consumer进程中,consumer从注册中心中获取有哪些地址可以用,再从地址中获取一个合适的provider。
- 注释:从注册中心中获取合适的服务
负载均衡方式
- 轮询:按顺序访问服务
- 权重轮询策略:根据每个provider相应的时间分配一个权重,相应时间越长,权重越小
原理:一开始是轮询策略,并开启一个计时器,每30秒收集一次每个provider的相应时间
- 随机策略:从provider列表中随机选择一个provider
- 最少并发: 选择正在请求的并发数最小的provider,除非这个provider在熔断中