1. 课程导论与整体架构
1.1 缓存一致性问题的业务背景
在微服务架构中,缓存是提升系统吞吐量与降低数据库压力的核心手段。然而,当数据在数据库中被更新后,缓存中仍保留旧值,便产生了缓存与数据库之间的数据不一致问题。这种不一致在金融、电商、社交等高并发场景下,会直接导致业务逻辑错误、用户数据错乱甚至资损。
典型业务场景: 用户下单后,订单状态从“待支付”变为“已支付”。若缓存未及时更新,后续查询仍返回“待支付”,导致重复支付或发货延迟。
缓存一致性问题的根源可归纳为以下三类:
| 问题类型 | 产生原因 | 典型后果 |
|---|---|---|
| 更新丢失 | 并发写操作未按顺序同步到缓存 | 缓存保留旧值,数据永久不一致 |
| 脏读 | 数据库事务回滚后缓存未回滚 | 用户读到未提交的中间状态 |
| 穿透与雪崩 | 缓存失效后大量请求直击数据库 | 数据库过载,系统响应超时 |
本课程将围绕缓存一致性闭环展开,涵盖 Cache-Aside、Read/Write-Through、Write-Behind 等主流模式,并引入分布式锁、消息队列、CDC(Change Data Capture)等机制,构建从写入到失效、从补偿到监控的完整闭环。
1.2 OAuth2.0 在微服务中的角色
微服务架构中,服务间调用与用户身份认证是安全体系的两大支柱。OAuth2.0 作为业界标准的授权框架,在微服务中承担以下核心角色:
- 统一身份认证: 通过授权服务器(Authorization Server)集中管理用户凭证,避免每个微服务独立维护密码库。
- 令牌传递与验证: 使用 JWT(JSON Web Token)作为访问令牌,在服务间传递用户身份与权限信息,无需重复查询用户中心。
- 细粒度权限控制: 结合 OAuth2.0 的 Scope 与微服务内部的 RBAC(基于角色的访问控制),实现接口级别的权限隔离。
- 第三方集成安全: 开放 API 给外部系统时,通过授权码模式(Authorization Code)或客户端凭证模式(Client Credentials)保障资源安全。
课程重点: 我们将深入 OAuth2.0 的四种授权模式,并实战集成 Spring Security OAuth2、Keycloak 或自建授权服务器,实现与缓存一致性闭环的安全联动。
1.3 课程整体技术栈
本课程采用业界主流且经过大规模生产验证的技术组件,确保学以致用:
| 技术领域 | 具体组件 | 版本/说明 |
|---|---|---|
| 编程语言 | Java | 17+ (LTS) |
| 微服务框架 | Spring Boot / Spring Cloud | 3.x / 2023.x |
| 缓存中间件 | Redis | 7.x (集群模式) |
| 数据库 | MySQL 8.x + MyBatis-Plus | 读写分离 + 分库分表 |
| 消息队列 | Apache Kafka / RabbitMQ | 异步解耦与最终一致性 |
| 安全框架 | Spring Security + OAuth2.0 | 授权码模式 + JWT |
| API 网关 | Spring Cloud Gateway | 统一鉴权与路由 |
| 监控与可观测 | Prometheus + Grafana + ELK | 缓存命中率、令牌过期追踪 |
1.4 学习路径与课程结构
课程共分为 30 章,按“基础→核心→进阶→实战”四阶段递进:
- 基础篇(第1-5章): 缓存一致性理论、OAuth2.0 核心概念、技术栈搭建与快速启动。
- 核心篇(第6-15章): 缓存模式实现、分布式锁、令牌颁发与验证、安全拦截器集成。
- 进阶篇(第16-25章): 最终一致性方案、CDC 同步、OAuth2.0 扩展(PKCE、设备码)、性能压测与调优。
- 实战篇(第26-30章): 全链路灰度发布、缓存与安全攻防演练、生产级部署与监控告警。
每章均包含可运行的代码示例、架构图与避坑指南,确保从理论到落地的平滑过渡。
1.5 整体架构概览
下图展示了本课程所构建的缓存一致性闭环与 OAuth2.0 安全集成的整体架构,涵盖用户请求、网关、授权服务器、业务服务、缓存与数据库之间的核心交互链路。