Skip to content

逻辑架构设计

文档编号: 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: 3

5. 服务层设计 (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主从复制,读写分离
会话数据RedisToken、缓存、分布式锁
搜索数据Elasticsearch用户搜索、日志检索
文件数据MinIO分布式对象存储
消息数据Kafka异步消息、事件驱动

6.3 数据流转

┌─────────────┐    写入    ┌─────────────┐    同步    ┌─────────────┐
│   服务层    │ ─────────► │    MySQL    │ ─────────► │ Elasticsearch│
│             │            │  (主数据)   │            │  (搜索索引)  │
└─────────────┘            └──────┬──────┘            └─────────────┘
       │                          │
       │ 缓存                      │ 主从复制
       ▼                          ▼
┌─────────────┐            ┌─────────────┐
│    Redis    │            │  MySQL Slave │
│   (缓存)    │            │   (读副本)   │
└─────────────┘            └─────────────┘

7. 层间交互规范

7.1 交互协议

层间交互协议数据格式说明
接入层→网关层HTTPSJSONRESTful API
网关层→服务层HTTP/2JSON内部服务调用
服务层→数据层TCPSQL/协议数据库连接

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.02026-03-08架构师初始版本,定义四层逻辑架构

Released under the MIT License.