逻辑架构设计
文档编号: SYS-DES-ARCH-LOGICAL-001
版本: 1.0
创建日期: 2026-03-08
作者: 架构师
状态: ✅ 已审核通过
1. 概述
1.1 目的
本文档定义System平台的逻辑架构设计,明确系统的分层结构、模块划分和组件职责,为系统实现提供清晰的架构蓝图。
1.2 范围
本文档涵盖:
- 四层逻辑架构设计(接入层、网关层、服务层、数据层)
- 各层组件定义与职责
- 层间交互关系
- 核心模块划分
1.3 参考文档
2. 逻辑架构总览
2.1 四层架构设计
System平台采用四层逻辑架构设计:
┌─────────────────────────────────────────────────────────────┐
│ 接入层 (Access Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Web端 │ │ 移动端 │ │ 第三方系统 │ │
│ │ (Vue 3) │ │ (H5) │ │ (API) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 网关层 (Gateway Layer) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Spring Cloud Gateway │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 路由转发 │ │ 限流熔断 │ │ 认证鉴权 │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 服务层 (Service Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用户中心 │ │ 权限服务 │ │ 组织架构 │ │
│ │ 服务 │ │ │ │ 服务 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 系统配置 │ │ 审计日志 │ │ 通知服务 │ │
│ │ 服务 │ │ 服务 │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据层 (Data Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL │ │ Redis │ │Elasticsearch│ │
│ │ (主数据) │ │ (缓存) │ │ (搜索) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ MinIO │ │ Kafka │ │
│ │ (文件) │ │ (消息) │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘2.2 架构设计原则
| 原则 | 说明 | 应用 |
|---|---|---|
| 分层解耦 | 各层职责清晰,层间通过标准接口交互 | 四层架构设计 |
| 单一职责 | 每个服务只负责一个业务领域 | 服务划分 |
| 高内聚低耦合 | 服务内部高内聚,服务间低耦合 | 服务设计 |
| 可扩展性 | 支持水平扩展和垂直扩展 | 微服务架构 |
| 高可用性 | 单点故障不影响整体服务 | 多实例部署 |
3. 接入层设计 (Access Layer)
3.1 职责定义
接入层负责接收用户请求,提供多端接入能力。
3.2 组件构成
| 组件 | 技术栈 | 职责 | 部署方式 |
|---|---|---|---|
| Web端 | Vue 3 + Element Plus | 提供Web管理界面 | Nginx静态托管 |
| 移动端 | Vue 3 + Vant | 提供移动端H5页面 | Nginx静态托管 |
| 第三方接入 | REST API | 提供OpenAPI接口 | 网关统一接入 |
3.3 Web端架构
┌─────────────────────────────────────────────┐
│ Web端 (Vue 3) │
├─────────────────────────────────────────────┤
│ 视图层 (Views) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 登录页 │ │ 首页 │ │ 系统管理 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 组件层 (Components) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │基础组件 │ │业务组件 │ │布局组件 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 服务层 (Services) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │API服务 │ │权限服务 │ │工具服务 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 状态管理 (Pinia) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │用户状态 │ │权限状态 │ │应用状态 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────┘3.4 接入层与网关层交互
┌─────────────┐ HTTPS ┌─────────────┐
│ Web端 │ ◄──────────────► │ Nginx │
│ (Vue 3) │ │ (负载均衡) │
└─────────────┘ └──────┬──────┘
│
│ HTTP/2
▼
┌─────────────────┐
│ Spring Cloud │
│ Gateway │
└─────────────────┘4. 网关层设计 (Gateway Layer)
4.1 职责定义
网关层作为系统的统一入口,负责请求路由、负载均衡、安全认证、限流熔断等。
4.2 核心功能
| 功能 | 说明 | 实现方式 |
|---|---|---|
| 路由转发 | 根据URL路径转发到对应服务 | Gateway路由配置 |
| 负载均衡 | 多实例服务的负载分发 | Ribbon/LoadBalancer |
| 认证鉴权 | JWT Token验证、权限校验 | Gateway Filter |
| 限流熔断 | 防止流量过载和服务雪崩 | Sentinel |
| 日志记录 | 请求响应日志记录 | Gateway Filter |
| 跨域处理 | CORS跨域支持 | Gateway配置 |
4.3 网关架构
┌─────────────────────────────────────────────────────────────┐
│ Spring Cloud Gateway │
├─────────────────────────────────────────────────────────────┤
│ 过滤器链 (Filter Chain) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 日志记录 │ │ 认证鉴权 │ │ 限流控制 │ │ 熔断降级 │ │
│ │ Filter │ │ Filter │ │ Filter │ │ Filter │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 路由规则 (Route Predicates) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ /api/system/** → System服务(用户/权限/组织) │ │
│ │ /api/config/** → 系统配置服务 │ │
│ │ /api/audit/** → 审计日志服务 │ │
│ │ /api/file/** → 文件服务 │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 负载均衡 (Load Balancer) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 轮询策略 │ │ 权重策略 │ │ 最少连接 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘4.4 网关路由配置示例
yaml
spring:
cloud:
gateway:
routes:
# System服务(用户/权限/组织)
- id: system-service
uri: lb://system-service
predicates:
- Path=/api/system/**
filters:
- StripPrefix=1
- name: Retry
args:
retries: 35. 服务层设计 (Service Layer)
5.1 服务划分
基于DDD领域划分,System平台划分为以下核心服务(避免微服务划分过小,采用适度聚合):
┌─────────────────────────────────────────────────────────────┐
│ 服务层 (Service Layer) │
├─────────────────────────────────────────────────────────────┤
│ 核心域服务 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ System服务 │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 用户管理 │ │ 权限管理 │ │ 组织架构 │ │ │
│ │ │ (User) │ │ (Auth) │ │ (Org) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ 包含模块:用户中心、认证授权、组织架构 │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 支撑域服务 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 系统配置 │ │ 审计日志 │ │ 通知服务 │ │
│ │ 服务 │ │ 服务 │ │ │ │
│ │ (Config) │ │ (Audit) │ │ (Notify) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 通用域服务 │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ 文件服务 │ │ 消息服务 │ │
│ │ (File) │ │ (Message) │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘5.2 服务职责定义
5.2.1 System服务 (System Service)
System服务作为核心业务服务,整合用户管理、权限管理、组织架构三大模块:
用户管理模块 (User Module)
| 职责 | 功能 | 接口示例 |
|---|---|---|
| 用户管理 | 用户CRUD、用户查询 | POST /api/system/user |
| 账号管理 | 账号启用/禁用/锁定 | PUT /api/system/user/{id}/status |
| 密码管理 | 密码修改、重置 | POST /api/system/user/{id}/password |
| 用户导入 | 批量导入用户 | POST /api/system/user/import |
权限管理模块 (Auth Module)
| 职责 | 功能 | 接口示例 |
|---|---|---|
| 角色管理 | 角色CRUD、角色授权 | POST /api/system/role |
| 权限管理 | 权限定义、权限分配 | POST /api/system/permission |
| 菜单管理 | 菜单配置、权限绑定 | POST /api/system/menu |
| 认证授权 | 登录、Token刷新、登出 | POST /api/system/auth/login |
组织架构模块 (Org Module)
| 职责 | 功能 | 接口示例 |
|---|---|---|
| 部门管理 | 部门CRUD、部门树 | POST /api/system/dept |
| 岗位管理 | 岗位CRUD、岗位授权 | POST /api/system/post |
| 员工管理 | 员工信息维护 | POST /api/system/employee |
| 组织同步 | 与HR系统同步 | POST /api/system/org/sync |
5.2.4 系统配置服务 (Config Service)
| 职责 | 功能 | 接口示例 |
|---|---|---|
| 参数配置 | 系统参数管理 | POST /api/config/param |
| 字典管理 | 数据字典维护 | POST /api/config/dict |
| Web配置 | 网站基本信息 | GET /api/config/web |
| 商务配置 | 合同、法人信息 | GET /api/config/business |
5.3 服务间调用关系
┌─────────────┐
│ 网关层 │
└──────┬──────┘
│
▼
┌────────────────────────┐
│ System服务 │
│ ┌─────────┬─────────┐ │
│ │用户管理 │权限管理 │ │
│ │组织架构 │ │ │
│ └─────────┴─────────┘ │
└───────────┬────────────┘
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 系统配置 │ │ 审计日志 │ │ 通知服务 │
│ 服务 │ │ 服务 │ │ │
└─────────────┘ └─────────────┘ └─────────────┘5.4 服务内部架构
每个服务采用六边形架构(端口-适配器模式):
┌─────────────────────────────────────────────────────────────┐
│ 服务内部架构 │
├─────────────────────────────────────────────────────────────┤
│ 适配器层 (Adapters) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ REST API │ │ Kafka │ │ Job │ │
│ │ Controller │ │ Listener │ │ Scheduler │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
├─────────┼───────────────┼───────────────┼───────────────────┤
│ │ │ │ │
│ ┌──────┴───────────────┴───────────────┴──────┐ │
│ │ 应用层 (Application) │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Service │ │ DTO │ │ │
│ │ │ │ │ Mapper │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────┐ │
│ │ 领域层 (Domain) │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Entity │ │ Service │ │ │
│ │ │ │ │ (Domain) │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────┐ │
│ │ 基础设施层 (Infrastructure) │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Mapper │ │ Repository │ │ │
│ │ │(MyBatis-Plus)│ │ │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘6. 数据层设计 (Data Layer)
6.1 数据存储架构
┌─────────────────────────────────────────────────────────────┐
│ 数据层 (Data Layer) │
├─────────────────────────────────────────────────────────────┤
│ 主数据存储 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MySQL 8.0 Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Master │ │ Slave 1 │ │ Slave 2 │ │ │
│ │ │ (写操作) │ │ (读操作) │ │ (读操作) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 缓存层 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Redis 7.x Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Node 1 │ │ Node 2 │ │ Node 3 │ │ │
│ │ │ (Master) │ │ (Master) │ │ (Master) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 搜索引擎 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Elasticsearch 8.x Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Node 1 │ │ Node 2 │ │ Node 3 │ │ │
│ │ │ (Master) │ │ (Data) │ │ (Data) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 文件存储 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MinIO Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Node 1 │ │ Node 2 │ │ Node 3 │ │ │
│ │ │ (分布式) │ │ (分布式) │ │ (分布式) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 消息队列 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Kafka Cluster │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Broker 1 │ │ Broker 2 │ │ Broker 3 │ │ │
│ │ │ (分区) │ │ (分区) │ │ (分区) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘6.2 数据存储策略
| 数据类型 | 存储方案 | 说明 |
|---|---|---|
| 业务数据 | MySQL | 主从复制,读写分离 |
| 会话数据 | Redis | Token、缓存、分布式锁 |
| 搜索数据 | Elasticsearch | 用户搜索、日志检索 |
| 文件数据 | MinIO | 分布式对象存储 |
| 消息数据 | Kafka | 异步消息、事件驱动 |
6.3 数据流转
┌─────────────┐ 写入 ┌─────────────┐ 同步 ┌─────────────┐
│ 服务层 │ ─────────► │ MySQL │ ─────────► │ Elasticsearch│
│ │ │ (主数据) │ │ (搜索索引) │
└─────────────┘ └──────┬──────┘ └─────────────┘
│ │
│ 缓存 │ 主从复制
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Redis │ │ MySQL Slave │
│ (缓存) │ │ (读副本) │
└─────────────┘ └─────────────┘7. 层间交互规范
7.1 交互协议
| 层间交互 | 协议 | 数据格式 | 说明 |
|---|---|---|---|
| 接入层→网关层 | HTTPS | JSON | RESTful API |
| 网关层→服务层 | HTTP/2 | JSON | 内部服务调用 |
| 服务层→数据层 | TCP | SQL/协议 | 数据库连接 |
7.2 接口规范
统一响应格式:
json
{
"code": 200,
"message": "success",
"data": {},
"timestamp": 1709836800000
}统一错误码:
| 错误码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未认证 |
| 403 | 无权限 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
8. 非功能性设计
8.1 性能设计
| 指标 | 目标值 | 设计策略 |
|---|---|---|
| 响应时间 | < 500ms | 缓存、异步、数据库优化 |
| 并发用户 | 1000+ | 水平扩展、负载均衡 |
| 吞吐量 | 5000 TPS | 异步处理、消息队列 |
| 可用性 | 99.9% | 集群部署、故障转移 |
8.2 安全设计
| 安全层面 | 设计策略 |
|---|---|
| 传输安全 | HTTPS/TLS 1.3 |
| 认证安全 | JWT + OAuth 2.0 |
| 数据安全 | AES加密、bcrypt密码 |
| 接口安全 | 限流、防重放、签名验证 |
9. 演进路线
9.1 一期(MVP)
- 完成四层基础架构搭建
- 实现用户中心、权限服务、组织架构服务
- 基础数据层(MySQL + Redis)
9.2 二期
- 增加系统配置服务、审计日志服务
- 引入Elasticsearch搜索
- 完善监控告警
9.3 三期
- 引入消息队列(Kafka)
- 完善文件存储(MinIO)
- 支持多租户
10. 相关文档
11. 修订记录
| 版本 | 日期 | 作者 | 变更内容 |
|---|---|---|---|
| 1.0 | 2026-03-08 | 架构师 | 初始版本,定义四层逻辑架构 |
