一、内容介绍:
- 课程包含内容:分为 Spring Cloud、业务相关内容、消息中间件三部分,消息中间件因内容多会专门开篇章讲解,当前的主流技术栈可能与文章不符,注意针对性学习。
二、Spring Cloud 五大组件面试题:
- 问题意义:考察对 Spring Cloud 的基本认识,简单但重要,答不出可能影响后续面试。
- 常见组件:注册中心 Eureka、负载均衡 Ribbon、远程调用 Feign、服务熔断 Hystrix、网关 Gateway;阿里巴巴体系注册中心和配置中心 Nacos、负载均衡 Ribbon、服务调用 Feign、服务保护 Sentinel、网关 Gateway。
三、服务注册和发现面试题:
- 问题原因:注册中心是微服务必不可少组件,考察使用微服务程度。
- Eureka工作流程:服务提供者启动时将信息注册到注册中心,服务消费者从注册中心拉取信息并做负载均衡后进行远程调用,服务提供者定期发心跳,注册中心进行健康监控。
- 回答要点:说明项目采用的注册中心,解释服务注册和发现的含义及服务监控机制,文档有参考回答。
四、Nacos 与 Eureka 区别面试题:
- 相同点:都支持服务注册和拉取,支持服务提供者以心跳方式做健康检测。
- 不同点:Nacos 支持服务端主动监测提供者状态,临时实例用心跳模式,非临时实例用主动探测模式;Nacos 支持服务列表变更推送,更新更及时;Nacos 集群默认 AP 模式,有非临时实例时为 CP 模式, Eureka 只支持 AP 模式;Nacos 还支持配置中心。
五、负载均衡面试题:
- 实现方式:Spring Cloud 体系中用 Ribbon 实现负载均衡,如 Feign 底层使用 Ribbon。
- 负载均衡策略:常见的有轮询、按权重选择、随机、最小连接数、重试机制、可用性敏感、区域敏感七种策略。
- 自定义策略实现:可创建类实现 IRule 接口,通过配置类或配置文件配置,有全局和局部两种方式。
- 回答要点:说明项目负载均衡实现方式,列举几种 Ribbon 负载均衡策略,阐述自定义策略的实现方式。
六、服务雪崩解决面试题:
- 服务雪崩定义:一个服务失败可能导致整个链路服务失败的情形。
- 解决方法:使用熔断降级,用 Spring Cloud 中 Hystrix 组件实现;限流可预防但不能解决。
- 服务降级:服务接口失败时加入降级逻辑,通过 Feign 接口设置 fallback 定义。
- 服务熔断:Hystrix 组件提供,默认关闭,开启需加注解,有关闭、打开、半开三种状态,根据请求失败率和重试情况切换状态。
- 回答建议:说明服务雪崩定义、解决方法及降级和熔断的区别,文档有参考回答。
七、微服务监控面试题:
- 监控原因:解决问题定位、性能分析、服务关系维护、服务告警等问题。
- 监控工具:常见的有 Spring Boot Admin、Prometheus + Grafana、Zipkin、Skywalking,Skywalking 相对优秀。
- Skywalking 功能:是分布式系统应用程序性能监测工具,有服务、端点、实例概念,其仪表盘可展示微服务状态,追踪可定位问题,拓扑图可展示服务关系,告警可设置规则并通知负责人。
- 回答要点:说明采用的监控工具,介绍其功能,文档有参考回答。