欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 04-微服务 面试题-mk

04-微服务 面试题-mk

2025/4/19 10:00:18 来源:https://blog.csdn.net/u013049194/article/details/147160592  浏览:    关键词:04-微服务 面试题-mk

文章目录

  • 1.Spring Cloud 常见的组件有哪些?
  • 2.服务注册和发现是什么意思?(Spring Cloud 如何实现服务注册发现)
  • 3.Nacos配置中心热加载实现原理及关键技术
  • 4.OpenFeign在微服务中的远程服务调用工作流程
  • 5.你们项目负载均衡如何实现的 ?
  • 6.什么是服务雪崩,怎么解决这个问题?
  • 7.你们服务是怎么监控的?
  • 8.微服务限流(漏桶算法、令牌桶算法)
  • 9.解释一下CAP和BASE
  • 10.你们采用哪种分布式事务解决方案?
    • 10.1.seata的XA模式(银行业务)
    • 10.2.AT模式原理(互联网业务)
    • 10.3.TCC模式原理(银行业务)
    • 10.4.MQ分布式事务
  • 11.两阶段提交(2PC)与三阶段提交(3PC)对比
  • 12.分布式服务的接口幂等性如何设计?
  • 13.你们项目中使用了什么分布式任务调度
  • 15.XXL-Job 处理大数据量并发任务的解决方案及底层原理
  • 16.springboot 项目改造成springcloud 项目的过程

1.Spring Cloud 常见的组件有哪些?

Spring Cloud 5大组件有哪些?

  • 基础的内容考察
  • 回答原则:简单的问题不能答错(一道面试题就能淘汰一个人)新手和老手都要注意
    在这里插入图片描述
    在这里插入图片描述

面试参考回答:

面试官:Spring Cloud 5大组件有哪些?

候选人:早期我们一般认为的Spring Cloud五大组件是

  • Eureka:注册中心
  • Ribbon:负载均衡
  • Feign:远程调用
  • Hystrix:服务熔断
  • Zuul/Gateway:网关

随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件

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

2.服务注册和发现是什么意思?(Spring Cloud 如何实现服务注册发现)

  • 微服务中必须要使用的组件,考察我们使用微服务的程度
  • 注册中心的核心作用是:服务注册和发现
  • 常见的注册中心:eureka、nocas、zookeeper

我做过的哪个微服务项目,使用了哪个注册中心

Eureka的作用
在这里插入图片描述
服务注册和发现是什么意思?Spring Cloud 如何实现服务注册发现?

  • 我们当时项目采用的eureka作为注册中心,这个也是spring cloud体系中的一个核心组件
  • 服务注册:服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务名称、ip、端口等等
  • 服务发现:消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用
  • 服务监控:服务提供者会每隔30秒向eureka发送心跳,报告健康状态,如果eureka服务90秒没接收到心跳,从eureka中剔除

我看你之前也用过nacos、你能说下nacos与eureka的区别?

  • 简历上有体现
  • 面试官比较熟悉nacos和eureka
    在这里插入图片描述

我看你之前也用过nacos、你能说下nacos与eureka的区别?

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

    • 都支持服务注册和服务拉取
    • 都支持服务提供者心跳方式做健康检测
  • Nacos与Eureka的区别(注册中心)

    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
    • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
    • Nacos集群默认采用AP(高可用)方式,当集群中存在非临时实例时,采用CP(强一致)模式;Eureka采用AP方式
  • Nacos还支持了配置中心,eureka则只有注册中心,也是选择使用nacos的一个重要原因

3.Nacos配置中心热加载实现原理及关键技术

Nacos配置中心热加载实现原理及关键技术

4.OpenFeign在微服务中的远程服务调用工作流程

OpenFeign在微服务中的远程服务调用工作流程

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

  • 负载均衡 Ribbon,发起远程调用feign就会使用Ribbon
  • Ribbon负载均衡策略有哪些 ?
  • 如果想自定义负载均衡策略如何实现 ?

Ribbon负载均衡流程
在这里插入图片描述

  • RoundRobinRule:简单轮询服务列表来选择服务器
  • WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小,被选择概率较低
  • RandomRule:随机选择一个可用的服务器
  • BestAvailableRule:忽略那些短路的服务器,并选择并发数较低的服务器(最小连接数)
  • RetryRule:重试机制的选择逻辑(按照轮询方式进行选择,如果出现宕机,会在指定时间内重试)
  • AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
  • ZoneAvoidanceRule:以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询(默认,区域就近)

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

可以自己创建类实现IRule接口 , 然后再通过配置类或者配置文件配置即可 ,通过定义IRule实现可以修改负载均衡规则,有两种方式:
在这里插入图片描述你们项目负载均衡如何实现的 ?

微服务的负载均衡主要使用了一个组件Ribbon,比如,我们在使用feign远程调用的过程中,底层的负载均衡就是使用了ribbon

Ribbon负载均衡策略有哪些 ?

  • RoundRobinRule:简单轮询服务列表来选择服务器
  • WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小
  • RandomRule:随机选择一个可用的服务器
  • ZoneAvoidanceRule:区域敏感策略,以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询(默认)

如果想自定义负载均衡策略如何实现 ?
提供了两种方式:

  • 创建类实现IRule接口,可以指定负载均衡策略(全局)
  • 在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)

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

  • 什么是服务雪崩
  • 熔断降级(通过Hystix 服务熔断降级来解决 )
  • 限流(预防)
    在这里插入图片描述
    服务降级

服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
在这里插入图片描述
在这里插入图片描述
服务熔断

Hystrix 熔断机制,用于监控微服务调用情况,?默认是关闭的,如果需要开启需要在引导类上添

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词