Spring Cloud Ribbon面试题大全

编程知识 更新时间:2023-04-07 03:09:18

Spring Cloud Ribbon面试题大全


目录

文档索引

面试题汇总

Q:Ribbon的总体流程?

Q:Ribbon如何选择调用哪个实例?

Q:服务列表的获取过程?

Q:Ribbon如何避免调用失效实例?

Q:Ribbon有哪些负载均衡策略?


文档索引


面试题汇总

Q:Ribbon的总体流程?

A: 针对被@LoadBalanced修饰的RestTemplate,给该RestTemplate增加LoadBalancerInterceptor拦截器,从而实现对负载均衡器的调用。负载均衡器通过服务名获取过滤后的服务列表,通过负载均衡算法获取其中某台实例,并进行调用

Q:Ribbon如何选择调用哪个实例?

A: 

1、获取服务列表:为了减少服务的延迟,客户端会通过eureka.instance.metadata-map.zone指定的zone对服务列表进行过滤

2、负载均衡:通过负载均衡策略从服务列表中获得其中一台,默认是RoundRobinRule轮询策略,再对服务端进行调用

Q:服务列表的获取过程?

A: 

1、服务列表默认是基于服务发现的,在应用启动时Ribbon就会从Eureka服务器中获取所有注册服务的列表数据,并保持同步。也可以通过动态设置的方式在配置文件中进行指定

2、通过ServerListFilter对服务器列表进行过滤

ZoneAffinityServerListFilter:基于区域感知的方式,实现对服务实例的过滤,仅返回与本身所处区域一直的服务提供者实例列表;

ServerListSubsetFilter:该过滤器继承自ZoneAffinityServerListFilter,在进行区域感知过滤后,仅返回一个固定大小的服务列表。默认将返回20个服务实例,可以通过ribbon.ServerListSubsetFilter.size进行设置;

ZonePreferenceServerListFilter:使用Eureka和Ribbon时默认的过滤器。实现通过配置或者Eureka所属区域来过滤出同区域的服务实例列表。

Q:Ribbon如何避免调用失效实例?

A: 

1、通过IPing检测实例,如果检测到某服务实例不存在/一定时间未响应,则会从持有服务列表中及时移除

2、保留zone的统计数据,ribbon可以避免可能访问失效的zone(剔除无实例、实例故障率大于阈值)

Q:Ribbon有哪些负载均衡策略?

A: 

更多推荐

Spring Cloud Ribbon面试题大全

本文发布于:2023-04-07 03:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/45c09886a37365f6451925a6f081631a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:面试题   大全   Spring   Cloud   Ribbon

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 51849文章数
  • 14阅读数
  • 0评论数