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. 基础篇(第1-5章): 缓存一致性理论、OAuth2.0 核心概念、技术栈搭建与快速启动。
  2. 核心篇(第6-15章): 缓存模式实现、分布式锁、令牌颁发与验证、安全拦截器集成。
  3. 进阶篇(第16-25章): 最终一致性方案、CDC 同步、OAuth2.0 扩展(PKCE、设备码)、性能压测与调优。
  4. 实战篇(第26-30章): 全链路灰度发布、缓存与安全攻防演练、生产级部署与监控告警。

每章均包含可运行的代码示例、架构图与避坑指南,确保从理论到落地的平滑过渡。

1.5 整体架构概览

下图展示了本课程所构建的缓存一致性闭环与 OAuth2.0 安全集成的整体架构,涵盖用户请求、网关、授权服务器、业务服务、缓存与数据库之间的核心交互链路。

课程整体架构图 缓存一致性闭环与 OAuth2.0 安全集成 — 整体架构 用户/客户端 API 网关 令牌验证 授权服务器 业务微服务 读写缓存 Redis 缓存 缓存失效/回写 MySQL 数据库 消息队列 异步事件 失效通知 监控与告警 指标采集 架构说明: 1. 用户请求经 API 网关统一鉴权(OAuth2.0 令牌验证),再路由至业务微服务。 2. 业务服务优先读取 Redis 缓存,缓存未命中则回查 MySQL,并异步更新缓存。 3. 数据库变更后通过消息队列发送缓存失效事件,形成“写-失效-重载”的一致性闭环。