50 条 微服务高频面试背诵点
·
全覆盖:SpringBoot、Nacos、Sentinel、Feign、Dubbo、Redis、MQ、MyBatis、线程、日志、依赖冲突、架构等
一、SpringBoot / Spring 核心(1–10)
- SpringBoot 核心作用:自动配置、内嵌容器、依赖管理、简化开发。
- SpringBoot 自动配置原理:SPI + 条件注解 @Conditional,按需装载 Bean。
- Spring IOC 容器:控制反转、依赖注入,解耦对象创建与使用。
- AOP 底层原理:动态代理,JDK 动态代理(接口)、CGLIB(类)。
- Spring 事务传播机制:控制多事务间调用的事务传递规则。
- Spring 事务隔离级别:解决脏读、不可重复读、幻读问题。
- @Transactional 失效场景:内部调用、非 public、异常捕获。
- SpringBoot 启动流程:加载引导上下文→自动配置→Bean 扫描→容器刷新。
- 三级缓存作用:解决Spring Bean 循环依赖问题。
- Spring 父子容器:父容器放 Service,子容器放 Controller,职责隔离。
二、SpringCloudAlibaba & 微服务(11–22)
- 微服务定义:单一职责、独立部署、去中心化、松耦合架构。
- 微服务核心组件:注册中心、配置中心、熔断限流、远程调用、网关。
- Nacos 两大核心:服务注册发现 + 统一配置中心。
- Nacos 持久化:配置持久化 MySQL,服务数据内存 + 磁盘快照。
- Nacos 集群作用:高可用、负载均衡、防止单点故障。
- Nacos 配置动态刷新:@RefreshScope、监听配置变更事件。
- CAP 理论:C 一致性、A 可用性、P 分区容错,微服务优先 AP。
- 注册中心对比:Nacos (AP 切换)>Eureka (AP)>Consul (CP)。
- 微服务注册流程:服务启动上报→注册中心保存→客户端定时拉取列表。
- 配置中心作用:统一配置、动态修改、环境隔离、加密配置。
- 微服务痛点:服务治理、分布式事务、链路追踪、依赖复杂。
- 环境隔离实现:Nacos 命名空间、配置分组、多环境 profile。
三、Sentinel 限流熔断(23–30)
- Sentinel 核心功能:限流、熔断、降级、热点参数限流、系统保护。
- 限流算法:令牌桶、漏桶、滑动时间窗口(Sentinel 默认)。
- 熔断三种状态:关闭→打开→半开,防止服务雪崩。
- 降级策略:非核心接口降级、返回兜底数据、减少非必要调用。
- 流控模式:直接限流、关联限流、链路限流。
- Sentinel 规则持久化:对接 Nacos 配置中心,规则动态下发。
- @SentinelResource 作用:定义资源名、自定义限流降级兜底方法。
- 服务雪崩原因:级联失败、请求堆积、资源耗尽。
四、远程调用 Feign / Dubbo(31–36)
- OpenFeign:声明式 HTTP 调用,整合 Ribbon/LoadBalancer,简化接口调用。
- Feign 超时配置:连接超时、读取超时,防止接口阻塞。
- Dubbo 架构:注册中心、提供者、消费者、监控中心、容器。
- Dubbo 协议:Dubbo 协议 (TCP) 高效、HTTP 协议通用。
- Dubbo 负载均衡:随机、轮询、一致性哈希、最少活跃。
- RPC 与 HTTP 区别:RPC 长连接高性能,HTTP 跨语言通用性强。
五、缓存 & Redis(37–40)
- Redis 作用:热点缓存、分布式锁、限流、计数器、消息队列。
- 缓存三大问题:缓存穿透、缓存击穿、缓存雪崩及解决方案。
- Jedis 与 Lettuce:Jedis 直连,Lettuce 线程安全支持集群。
- 分布式锁实现:Redis+Lua 脚本保证原子性,防死锁、防误删。
六、消息队列 MQ(41–43)
- RabbitMQ 作用:异步解耦、削峰填谷、流量消峰。
- MQ 可靠投递:生产者确认、持久化、手动 ACK、死信队列。
- 消息重复消费:业务幂等设计,唯一主键去重。
七、数据库 & 连接池 & MyBatis(44–47)
- Druid 优势:高性能连接池、SQL 监控、防注入、慢 SQL 日志。
- MyBatis 一级缓存:SqlSession 级别,默认开启,会话关闭清空。
- MyBatis 二级缓存:Mapper 全局缓存,跨会话,需手动开启。
- 数据库悲观锁 & 乐观锁:悲观锁强锁定,乐观锁版本号控制并发。
八、日志、依赖、工程优化(48–50)
- 日志冲突问题:项目多套日志实现共存(logback/log4j2),需排他统一。
- Maven 依赖冲突:多版本 Jar 共存,采用版本统一、排除依赖、依赖仲裁解决。
- 企业级项目规范:日志分级、配置加密 (Jasypt)、定时任务 (XXL-Job)、流程引擎 (Activiti)、权限加密 (BouncyCastle)。
更多推荐
所有评论(0)