微服务框架常见面试题

Spring Cloud 5大组件有哪些?

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

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

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

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

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

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

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

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

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

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

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

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

提供了两种方式:

1,创建类实现IRule接口,可以指定负载均衡策略(全局)

2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)

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

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

你们的微服务是怎么监控的?

skywalking

一个分布式系统的应用程序性能监控工具( Application Performance Managment ),提供了完善的链路追踪能力, apache的顶级项目(前华为产品经理吴晟主导开源)

我们项目中采用的skywalking进行监控的

1skywalking主要可以监控接口、服务、物理实例的一些状态。特别是在压测的时候可以看到众多服务中哪些服务和接口比较慢,我们可以针对性的分析和优化。

2,我们还在skywalking设置了告警规则,特别是在项目上线以后,如果报错,我们分别设置了可以给相关负责人发短信和发邮件,第一时间知道项目的bug情况,第一时间修复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 微服务面试题可以包括多个方面的问题。其中一些常见的问题包括测试微服务时面临的挑战,过渡到微服务时的常见错误,以及为什么在微服务中需要报告和仪表板。在测试微服务时,测试人员需要全面了解所有入站和出站过程,并且在独立的团队开发不同功能时,协作可能会变得困难。此外,随着微服务数量的增加,系统的复杂性也会增加,测试人员需要确保组件之间的内部通信没有中断。\[1\]过渡到微服务时的常见错误包括没有充分了解微服务架构的优点,以及在部署和管理微服务时遇到的挑战。\[2\]微服务的优点包括可以轻松适应其他框架或技术,单个进程的失败不会影响整个系统,为大企业和小型团队提供支持,以及可以在相对较短的时间内独立部署。\[2\]康威定律与微服务的关系是另一个可能被问到的问题。康威定律指出,组织的通信结构会影响到设计的系统的结构。微服务架构中的松散耦合的API正是康威定律的体现,它使得组织在重组工作流程时更加灵活。\[3\]此外,面试中还可能会问到如何配置Spring Boot应用程序的日志记录。配置Spring Boot应用程序的日志记录可以通过在application.properties或application.yml文件中设置相关属性来实现。\[3\] #### 引用[.reference_title] - *1* *2* *3* [29个你必须掌握的微服务面试问题(含答案解析)](https://blog.csdn.net/chiquanzhe9768/article/details/100934283)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值