关于SpringCloud的面试题

一、Spring Cloud组件有哪些?

5大组件:

  • 注册中心/配置中心 Nacos
  • 负载均衡 Ribbon
  • 服务调用 Feign
  • 服务保护 sentinel
  • 服务网关 Gateway

二、服务注册和发现是什么意思?Spring Cloud 如何实现服务注册发现?

我们当时项目采用的eureka作为注册中心,这个也是Spring cloud体系中的一个核心组件。

  • 服务注册:服务启动时,服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务名称、ip、端口等
  • 服务发现:服务消费者在进行远程调用时,从eureka拉取服务列表信息,如果服务提供者有集群,则消费者会根据负载均衡算法,选择一个发起调用
  • 服务监控:服务提供者会每隔30秒向eureka发送心跳,报告健康状态,如果eureka服务90秒都没接收到心跳,就从eureka中剔除

 我看你也用过Nacos,你知道nacos和eureka的区别吗?

  • Nacos与eureka共同点:(注册中心)

        ①都支持服务注册和服务拉取

        ②都支持服务提供者心跳方式做健康检测

  • 区别:(注册中心)

        ①Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式

        ②临时实例心跳不正常会被剔除,非临时实例则不会被剔除

        ③Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

        ④Nacos集群默认采用AP方式(高可用性),当集群中存在非健康实例时,采用CP模式(强一致性);eureka采用AP模式

  • Nacos还支持配置中心,eureka只支持注册中心。

三、关于Ribbon

你们项目负载均衡如何实现的?

我们的微服务负载均衡使用了Ribbon组件,比如我们在使用Feign远程调用时,底层就使用了Ribbon来实现负载均衡。

Ribbon负载均衡策略有哪些?

1 RoundRobinRule 简单轮询

2 WeightedResponseTimeRule 按照权重来选择服务器,响应时间越长,权重越小

3 RandomRule 随机选择一个可用服务器

4 ZoneAvoidanceRule 区域敏感策略 就近选择服务器,zone可以理解为一个机房、一个机架;

而后再对Zone内的多个服务做轮询

如果想自定义负载均衡策略,如何实现?

提供了两种方式:

1.创建一个类实现IRule接口,可以指定负载均衡策略(对项目全局生效)

2.在客户端的配置文件中,可以配置某一个微服务调用的负载均衡策略(只对当前服务生效)

四、什么是服务雪崩,怎么解决这个问题?

  • 服务雪崩:一个服务访问失败,导致整条链路的服务都失败的情形。
  • 服务降级:服务自我保护的一种方式,或者保护下游服务的一种方式,用于保护服务在请求量剧增时不会变得不可用,即服务不会崩溃。一般在实际开发中与Feign接口整合,编写降级逻辑。
  • 服务熔断:默认关闭。需要手动打开。如果检测到10s内请求的失败率超过50%,就会触发熔断机制,之后每隔5s重新尝试请求微服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringCloud面试题是指涉及SpringCloud框架的一系列问题。面试题的主题包括了SpringCloud的基本概念、特性、优势、微服务架构、服务注册与发现、负载均衡、熔断与降级、配置管理、消息队列、分布式事务等方面的知识。这些面试题旨在评估面试者对SpringCloud的理解和实践经验。根据引用和引用,可以找到一套包含大量经典的SpringCloud面试题及答案的参考资料。这套资料汇总了SpringCloud的常见面试题、工程师高级面试题以及一些大厂开发面试宝典。可以参考这些面试题来准备SpringCloud的面试。而引用提到的DRY原则(Don't Repeat Yourself)也是编程中的一个重要原则,它鼓励代码的重用,促进开发和共享库的使用。这也是在SpringCloud开发中需要注意的一个原则。 所以,SpringCloud面试题是一系列涉及SpringCloud框架的问题,包括基本概念、特性、优势、微服务架构、服务注册与发现、负载均衡、熔断与降级、配置管理、消息队列、分布式事务等方面的知识。可以通过参考引用和引用提供的面试题资料来准备相关面试。另外,DRY原则也是在SpringCloud开发中需要遵循的重要原则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringCloud面试题及答案 300道,springcloud面试题总结 (持续更新)](https://blog.csdn.net/u012889902/article/details/121994645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值