SpringCloud - Ribbon(包含负载均衡自定义策略)

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: SpringCloud - Ribbon(包含负载均衡自定义策略)

image.png之前Resttemple是根据服务名找一个服务来做,但是具体怎么做,负载均衡是怎么选择的呢。 Eureka中是客户端这边做负载均衡的,而不是服务端。

图中三个都用到了负载均衡器Ribbon,其中@LoadBlanced注解其实是Ribbon的组件。会帮你用轮询或者随机连接等实现负载均衡。


image.png

image.png


Ribbon实现软负载均衡核心有三点

1、服务发现:发现依赖服务的列表(依据服务的名字,把该服务下的实例都找出来)。

2、服务选择规则:依据规则策略如何从多个服务中选择一个有效的服务。

3、服务监听,检测失效的服务,做到高效剔除。


image.png


通过ServerList找到所有服务实例,ServerListFilter过滤一些目标结果,通过IRule选择出一些目标结果。

Feign 主要是 feign client + ribbon,feign其实就通过@FeignClient注解的接口的serviceName + ribbon拿到目标服务ip和port,然后根据@FeignClient注解的接口的某个方法上的requestMapping注解,组装成完整的请求url,然后利用restTemplate去请求目标url。

类关系分析 & 负载均衡自定义策略



image.png


Ribbon策略

1、默认是轮询 RoundRobinRule(服务按照顺序列表循环命中)

2、Spring官网根据版本查找Ribbon目录,通过配置文件进行策略配置。

3、Product是服务名称,调整策略为随机 RandomRule 是 IRule 的实现类(举例)。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
负载均衡 Java Nacos
常见的Ribbon/Spring LoadBalancer的负载均衡策略
自SpringCloud 2020版起,Ribbon被弃用,转而使用Spring Cloud LoadBalancer。Ribbon支持轮询、随机、加权响应时间和重试等负载均衡策略;而Spring Cloud LoadBalancer则提供轮询、随机及Nacos负载均衡策略,基于Reactor实现,更高效灵活。
176 0
|
3月前
|
负载均衡
slb自定义健康检查路径
slb自定义健康检查路径
48 3
WXM
|
6月前
|
存储 缓存 Java
|
7月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
148 1
|
7月前
|
Java 微服务 Spring
SpringCloud gateway自定义请求的 httpClient
SpringCloud gateway自定义请求的 httpClient
272 3
|
8月前
|
负载均衡 算法 Nacos
SpringCloud之LoadBalancer自定义负载均衡算法,基于nacos权重
ReactorLoadBalancer接口,实现自定义负载算法需要实现该接口,并实现choose逻辑,选取对应的节点。
616 0
|
9月前
|
负载均衡
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
124 0
|
9月前
|
负载均衡 算法 Java
Ribbon自定义负载均衡算法
Ribbon自定义负载均衡算法
82 1
|
9月前
|
负载均衡
Ribbon负载均衡策略
Ribbon负载均衡策略
|
9月前
|
负载均衡 算法 Java
Ribbon的负载均衡策略
Ribbon的负载均衡策略
100 2