Spring Cloud 微服务脚手架:Simple Cloud 系统架构设计

Spring Cloud 微服务脚手架:Simple Cloud 系统架构设计

本文介绍一个基于 Spring Boot 3.2 + Spring Cloud 2023 的多模块微服务脚手架项目的整体结构与模块划分思路。

一、项目简介

Simple Cloud 是一个微服务脚手架项目,设计目标有四个:

  1. 统一认证:所有外部请求由网关集中鉴权,业务服务不直接接触外部 Token;
  2. 无状态化:基于 JWT Token 认证,不用 Session;
  3. 内部可信:网关转发给下游服务的请求必须带签名,防止身份伪造;
  4. 能力组件化:JWT、签名、Redis、权限控制等都封装成公共模块,业务服务开箱即用。

二、技术栈

技术 版本 用途
JDK 17 运行时
Spring Boot 3.2.0 基础框架
Spring Cloud 2023.0.3 微服务治理
Spring Cloud Alibaba 2023.0.3.2 Nacos 集成
Nacos --- 注册中心 + 配置中心
Spring Cloud Gateway --- 统一入口网关
OpenFeign --- 服务间调用
MyBatis-Plus 3.5.5 ORM 框架
MySQL / Redis --- 存储与缓存
JJWT 0.12.3 JWT 生成与校验

三、项目结构

项目采用 Maven 多模块组织,按职责划分为五层,依赖方向严格单向:

复制代码
simple-cloud/
├── common/                          # ① 公共能力层(无业务)
│   ├── common-core                  #   统一返回体、异常定义
│   ├── common-spring-core           #   全局异常处理、密码加密器
│   ├── common-spring-redis          #   Redis 配置与操作封装
│   ├── common-spring-mybatis-plus   #   审计字段自动填充
│   ├── common-spring-auth-jwt       #   JWT 生成与校验
│   └── common-spring-auth-sign      #   内部请求 HMAC 签名
├── entity/                          # ② 实体层(不依赖任何 Web 框架)
│   ├── common-entity                #   基础实体(审计字段、逻辑删除)
│   ├── system-entity                #   用户、管理员等实体与 DTO
│   └── auth-entity                  #   登录请求/响应 DTO
├── feign/                           # ③ Feign 客户端层
│   └── system-feign                 #   系统服务的内部调用接口
├── auth-lib/                        # ④ 授权框架(可插拔)
│   ├── auth-common                  #   公共定义
│   ├── auth-manual                  #   手动拦截器模式
│   ├── auth-spring-security         #   Spring Security 模式
│   └── auth-starter                 #   自动装配入口,按配置切换模式
├── web/                             # ⑤ 业务服务层(可部署单元)
│   ├── auth-web                     #   认证中心(端口 8081)
│   └── system-web                   #   系统服务(端口 8083)
└── gateway/                         #   网关(端口 8080)

分层上有几条约束保证架构不腐化:

  • 聚合模块零依赖:web、entity、feign 等父模块只聚合,依赖全部在子模块中显式声明;
  • 实体层零框架污染:entity 模块只引入 MyBatis-Plus 注解包,不引入任何 starter,避免把数据源等自动配置传染给使用它的服务;
  • 公共能力自动装配:每个 common 模块都通过 Spring Boot 自动配置机制注册组件,业务模块引入依赖即可用。
相关推荐
CodeGL2 小时前
微服务框架——go-zero
微服务·架构·golang
szxinmai主板定制专家4 小时前
AMR 项目落地:机器人控制器硬件定制化需求复盘
arm开发·单片机·fpga开发·系统架构·机器人·am62x
草莓熊Lotso4 小时前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
ClickHouseDB13 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
深圳讯鹏科技1 天前
ESD防静电监控系统架构分享:从工位设备数据采集到看板联动
系统架构
阿俊-全栈开发1 天前
LikeShop 多商户 Java 版商城微服务模块拆分与部署架构演进实践
java·微服务·架构·likeshop开源商城·多商户源码
frjc1 天前
分布式服务拆分实战指南:从底层逻辑到面试话术
微服务·面试·职场和发展
Jmyd01231 天前
博物馆数字展厅系统架构设计:实景采集到云渲染全链路
unity·系统架构·博物馆·数字展厅·博物馆数字化
赤生云电竞1 天前
算力调度系统架构实践:计费、配额与抢占策略解析
系统架构