一个真实后端项目:一次请求从网关到数据库(已脱敏)

一个真实后端项目:一次请求从网关到数据库(已脱敏) 由 Archify 生成的时序图。 POST /api/business/create 请求头带自定义访问令牌 GET token:{accessToken} GlobalFilter:令牌不是 JWT,直接查 Redis 取用户 用户对象 JSON 查不到即抛 token 失效异常,返回错误码 GET api-permission:{path} nil(未命中) Feign 查该 API 的权限列表 仅在缓存未命中时回源 权限列表(并回填 Redis) 按配置中心路由转发 附带用户身份与权限校验结果 事务写入业务数据与流转留痕 commit OK 发起审批(异步) IM 回调专用 Controller 写回状态,回调必须幂等 200 统一响应体 经网关原路返回 请求与鉴权 权限缓存未命中,回源 业务落库与响应 浏览器 · 宿主 + 子应用 · 时序参与者 浏览器 宿主 + 子应用 API 网关 · Spring Cloud Gateway · 时序参与者 API 网关 Spring Cloud Gateway Redis · token / 权限缓存 · 时序参与者 Redis token / 权限缓存 用户权限服务 · Feign 回源目标 · 时序参与者 用户权限服务 Feign 回源目标 业务服务 · 业务处理层 · 时序参与者 业务服务 业务处理层 MySQL · 业务主库 · JPA · 时序参与者 MySQL 业务主库 · JPA 企业 IM · 审批与回调 · 时序参与者 企业 IM 审批与回调 图例 请求 返回 安全 异步追踪 默认消息

鉴权链关键细节

  • • token 不是 JWT,直接查 Redis 取用户对象
  • • 登出即失效,代价是强依赖 Redis 可用
  • • 权限判定三档,不匹配返回 404「未知接口」

不在同步链路里的部分

  • • 路由由 Nacos 动态下发并热更新
  • • 采集侧另有 PostgreSQL 存 GIS/点云
  • • 大文件走 MinIO,Kafka 承担异步消息

技术栈(pom.xml 证据)

  • • Java 11 + Spring Boot 2.3.12
  • • Spring Cloud Alibaba 2.2.6 + Gateway
  • • OpenFeign + JPA + Redis 客户端 + spring-kafka