全覆盖:SpringBoot、Nacos、Sentinel、Feign、Dubbo、Redis、MQ、MyBatis、线程、日志、依赖冲突、架构等

一、SpringBoot / Spring 核心(1–10)

  1. SpringBoot 核心作用:自动配置、内嵌容器、依赖管理、简化开发
  2. SpringBoot 自动配置原理:SPI + 条件注解 @Conditional,按需装载 Bean。
  3. Spring IOC 容器:控制反转、依赖注入,解耦对象创建与使用。
  4. AOP 底层原理:动态代理,JDK 动态代理(接口)、CGLIB(类)。
  5. Spring 事务传播机制:控制多事务间调用的事务传递规则。
  6. Spring 事务隔离级别:解决脏读、不可重复读、幻读问题
  7. @Transactional 失效场景:内部调用、非 public、异常捕获
  8. SpringBoot 启动流程:加载引导上下文→自动配置→Bean 扫描→容器刷新。
  9. 三级缓存作用:解决Spring Bean 循环依赖问题
  10. Spring 父子容器:父容器放 Service,子容器放 Controller,职责隔离。

二、SpringCloudAlibaba & 微服务(11–22)

  1. 微服务定义:单一职责、独立部署、去中心化、松耦合架构。
  2. 微服务核心组件:注册中心、配置中心、熔断限流、远程调用、网关。
  3. Nacos 两大核心:服务注册发现 + 统一配置中心
  4. Nacos 持久化:配置持久化 MySQL,服务数据内存 + 磁盘快照。
  5. Nacos 集群作用:高可用、负载均衡、防止单点故障
  6. Nacos 配置动态刷新:@RefreshScope、监听配置变更事件。
  7. CAP 理论:C 一致性、A 可用性、P 分区容错,微服务优先 AP。
  8. 注册中心对比:Nacos (AP 切换)>Eureka (AP)>Consul (CP)。
  9. 微服务注册流程:服务启动上报→注册中心保存→客户端定时拉取列表。
  10. 配置中心作用:统一配置、动态修改、环境隔离、加密配置
  11. 微服务痛点:服务治理、分布式事务、链路追踪、依赖复杂。
  12. 环境隔离实现:Nacos 命名空间、配置分组、多环境 profile。

三、Sentinel 限流熔断(23–30)

  1. Sentinel 核心功能:限流、熔断、降级、热点参数限流、系统保护
  2. 限流算法:令牌桶、漏桶、滑动时间窗口(Sentinel 默认)。
  3. 熔断三种状态:关闭→打开→半开,防止服务雪崩。
  4. 降级策略:非核心接口降级、返回兜底数据、减少非必要调用。
  5. 流控模式:直接限流、关联限流、链路限流。
  6. Sentinel 规则持久化:对接 Nacos 配置中心,规则动态下发。
  7. @SentinelResource 作用:定义资源名、自定义限流降级兜底方法。
  8. 服务雪崩原因:级联失败、请求堆积、资源耗尽。

四、远程调用 Feign / Dubbo(31–36)

  1. OpenFeign:声明式 HTTP 调用,整合 Ribbon/LoadBalancer,简化接口调用。
  2. Feign 超时配置:连接超时、读取超时,防止接口阻塞。
  3. Dubbo 架构:注册中心、提供者、消费者、监控中心、容器
  4. Dubbo 协议:Dubbo 协议 (TCP) 高效、HTTP 协议通用
  5. Dubbo 负载均衡:随机、轮询、一致性哈希、最少活跃
  6. RPC 与 HTTP 区别:RPC 长连接高性能,HTTP 跨语言通用性强

五、缓存 & Redis(37–40)

  1. Redis 作用:热点缓存、分布式锁、限流、计数器、消息队列
  2. 缓存三大问题:缓存穿透、缓存击穿、缓存雪崩及解决方案。
  3. Jedis 与 Lettuce:Jedis 直连,Lettuce 线程安全支持集群。
  4. 分布式锁实现:Redis+Lua 脚本保证原子性,防死锁、防误删。

六、消息队列 MQ(41–43)

  1. RabbitMQ 作用:异步解耦、削峰填谷、流量消峰
  2. MQ 可靠投递:生产者确认、持久化、手动 ACK、死信队列。
  3. 消息重复消费:业务幂等设计,唯一主键去重。

七、数据库 & 连接池 & MyBatis(44–47)

  1. Druid 优势:高性能连接池、SQL 监控、防注入、慢 SQL 日志
  2. MyBatis 一级缓存:SqlSession 级别,默认开启,会话关闭清空。
  3. MyBatis 二级缓存:Mapper 全局缓存,跨会话,需手动开启。
  4. 数据库悲观锁 & 乐观锁:悲观锁强锁定,乐观锁版本号控制并发。

八、日志、依赖、工程优化(48–50)

  1. 日志冲突问题:项目多套日志实现共存(logback/log4j2),需排他统一。
  2. Maven 依赖冲突:多版本 Jar 共存,采用版本统一、排除依赖、依赖仲裁解决。
  3. 企业级项目规范:日志分级、配置加密 (Jasypt)、定时任务 (XXL-Job)、流程引擎 (Activiti)、权限加密 (BouncyCastle)。

更多推荐