SpringCloud - Ribbon(包含负载均衡自定义策略)
  t2ja7jQOPGVr 2023年11月02日 30 0


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

  • 之前Resttemple是根据服务名找一个服务来做,但是具体怎么做,负载均衡是怎么选择的呢。 Eureka中是客户端这边做负载均衡的,而不是服务端。
  • 图中三个都用到了负载均衡器Ribbon,其中@LoadBlanced注解其实是Ribbon的组件。会帮你用轮询或者随机连接等实现负载均衡。

SpringCloud - Ribbon(包含负载均衡自定义策略)_微服务_02

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

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

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

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

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

  • 通过ServerList找到所有服务实例,ServerListFilter过滤一些目标结果,通过IRule选择出一些目标结果。
  • Feign 主要是 feign client + ribbon,feign其实就通过@FeignClient注解的接口的serviceName + ribbon拿到目标服务ip和port,然后根据@FeignClient注解的接口的某个方法上的requestMapping注解,组装成完整的请求url,然后利用restTemplate去请求目标url。

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

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

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

Ribbon策略

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

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

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
t2ja7jQOPGVr
最新推荐 更多