架构概览
Guava 后端微服务架构 — 基于 Spring Boot 3.5.14 + Spring Cloud Alibaba 的统一后台管理 API。
整体架构
┌──────────────┐
│ 前端 / App │
└──────┬───────┘
│ HTTP
▼
┌─────────────────────────────┐
│ guava-gateway │
│ 网关 (7001) │
└──┬──────┬──────┬──────┬──────┘
│ │ │ │
┌────────────┼──────┼──────┼──────┼────────────┐
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
┌────────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
│ guava- │ │ guava │ │ guava │ │ guava │ │ guava │
│ admin │ │ login │ │ redis │ │file │ │mq │
│ (7003) │ │ (7002) │ │ (7005) │ │store │ │provider│
└─────┬──────┘ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘
│ │ │ │ │
└────────────┴──────────┴──────────┴──────────┘
│
┌─────────────────────────┴───────────────────────────┐
│ 注册 / 配置 / 发现 │
└─────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────┐
│ Nacos (注册/配置中心) │
└─────────────────────────┘
┌──────────────────────────────────────────────────────┐
│ 基础设施 (共享) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ MySQL │ │ Redis │ │RabbitMQ │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└──────────────────────────────────────────────────────┘所有微服务均注册到 Nacos,网关通过 Nacos 服务发现进行路由转发,服务间通过 Feign 同步调用或 RabbitMQ 异步消息通信。
框架基础服务
| 服务 | 端口 | 说明 | 文档 |
|---|---|---|---|
guava-gateway-starter | 7001 | 统一网关,路由转发、Token 校验、跨域 | 网关 |
guava-login-starter | 7002 | 登录认证服务,Token 签发 | 认证服务 |
guava-admin-starter | 7003 | 后台管理服务(用户/角色/菜单/部门/字典等) | 系统管理 |
guava-redis-starter | 7005 | Redis 缓存封装服务(+ Caffeine 二级缓存) | 缓存 |
guava-filestore | 7004 | 文件存储服务 | 文件 |
guava-mq-provider-starter | 7006 | MQ 消息生产者 | 消息 |
guava-mq-consumer-starter | 7007 | MQ 消息消费者 | 消息 |
框架基础模块
| 模块 | 说明 | 文档 |
|---|---|---|
guava-parent-starter | 父级 BOM,统一管理依赖版本 | Parent |
guava-entity-starter | 实体模块(PO 基类、通用字段) | Entity |
guava-component-starter | 公共组件模块(字典、安全、Excel) | Component |
guava-platform-starter | 平台基础模块(异常、工具、上下文) | Platform |
通信方式
| 方式 | 协议 | 场景 |
|---|---|---|
| 外部 → 网关 | HTTP / REST | 前端通过网关访问后端 |
| 服务间同步调用 | OpenFeign(HTTP) | admin → redis 缓存同步 |
| 服务间异步消息 | RabbitMQ(AMQP) | 事件通知、数据同步 |
| 服务注册发现 | Nacos | 动态路由、负载均衡 |
| 配置中心 | Nacos | 远程配置、动态刷新 |
安全机制
| 组件 | 说明 |
|---|---|
| 认证 | 自定义 JWT Token(TokenInterceptor) |
| 鉴权 | @CheckToken / @NoCheckToken 注解 |
| 上下文 | ContextHolder ThreadLocal 传递用户/账号/部门/公司 |
| 网关 | 统一 Token 校验、白名单、跨域 |
NOTE
项目未使用 Spring Security,采用轻量级自定义拦截器方案。