Files
gym-manage/docs/design/LLD-系统详细设计.md
T
张翔 349b0a754f 重构HLD和LLD文档,明确业务概要设计与详细设计的职责分工
主要变更:
- 重构HLD-系统概要设计.md为业务概要设计文档
  * 聚焦于业务范围、业务流程、业务规则、业务场景
  * 移除技术架构、模块设计、接口设计等技术内容
  * 新增核心业务流程图(会员注册、课程预约、签到、会员卡购买)
  * 新增详细业务规则(会员管理、预约管理、签到管理、财务管理、数据分析)
  * 新增典型业务场景和特殊业务场景描述
  * 新增业务约束和业务指标

- 新增LLD-系统详细设计.md作为系统技术详细设计文档
  * 整合从HLD移出的技术架构设计(总体架构、技术架构、部署架构)
  * 整合模块设计(模块划分、模块职责、模块交互)
  * 整合接口设计(接口规范、接口分组、接口版本管理)
  * 整合安全设计(认证机制、权限控制、数据安全、接口安全)
  * 整合性能设计(性能目标、性能优化策略、高并发场景处理)
  * 整合可扩展性设计(水平扩展、功能扩展)
  * 整合监控与运维(监控体系、日志规范)

- 更新所有LLD模块文档的参考文档
  * 更新HLD文档引用为业务概要设计文档
  * 新增LLD-系统详细设计.md作为参考文档

- 删除docs/api/API接口文档.md(接口设计已整合到LLD-系统详细设计.md)

文档职责分工:
- PRD:产品需求文档,描述产品需求和功能
- HLD:业务概要设计文档,描述业务范围、流程、规则、场景
- LLD:详细设计文档,描述技术架构、模块设计、接口设计等实现细节~
2026-03-04 11:43:21 +08:00

65 KiB
Raw Blame History

健身房管理系统详细设计文档(LLD

文档编号: GYM-LLD-000
版本: v1.0
日期: 2026-03-04
作者: 张翔
状态: 初稿


文档修订历史

版本 日期 作者 修订内容
v1.0 2026-03-04 张翔 创建系统详细设计文档

参考文档

  • 《健身房管理系统产品设计文档》 GYM-PRD-001
  • 《健身房管理系统业务概要设计文档》 GYM-HLD-001
  • Spring Boot 3 官方文档
  • R2DBC 规范文档
  • PostgreSQL 官方文档

一、系统架构设计

1.1 总体架构

采用分层架构 + 微服务思想的模块化设计:

┌─────────────────────────────────────────────────────────────────────────┐
│                          总体架构                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 客户端层                                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 会员小程序 (uniapp+Vue3)                                │   │
│  │ • 教练端App (uniapp+Vue3)                                 │   │
│  │ • 管理后台PC (Vue3+Vite)                                  │   │
│  │ • 硬件设备 (人脸/NFC)                                      │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ API Gateway 统一网关                                      │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 路由转发  • 认证鉴权  • 限流熔断  • 日志追踪           │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 业务层                                                   │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 会员服务 (Member Service)                                 │   │
│  │ • 预约服务 (Booking Service)                                │   │
│  │ • 数据服务 (Data Service)                                   │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 公共服务层                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 认证服务  • 消息服务  • 文件服务  • 缓存服务            │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 基础设施层                                             │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • PostgreSQL  • R2DBC  • Caffeine  • Redis(可选)          │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 外部服务层                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 微信开放平台  • 短信服务  • 支付服务  • OSS存储        │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

1.2 技术架构

┌─────────────────────────────────────────────────────────────────────────┐
│                          技术架构                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 前端技术栈                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • uniapp (跨平台小程序)  • Vue3 (前端框架)                   │   │
│  │ • Vite (构建工具)  • TypeScript (类型安全)                   │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 后端技术栈                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • Spring Boot 3 (应用框架)  • WebFlux (响应式编程)           │   │
│  │ • JDK 21+ (运行环境)  • R2DBC (响应式数据库访问)           │   │
│  │ • Spring Security (安全框架)  • Caffeine (本地缓存)           │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 数据库技术栈                                             │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • PostgreSQL 15+ (主数据库)  • Redis (可选缓存)             │   │
│  │ • Flyway (数据库版本管理)  • R2DBC PostgreSQL Driver       │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 开发工具栈                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • Maven (依赖管理)  • Git (版本控制)  • Docker (容器化)     │   │
│  │ • IDEA (开发IDE)  • Postman (接口测试)                     │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

1.3 部署架构

┌─────────────────────────────────────────────────────────────────────────┐
│                          部署架构                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 客户端层                                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 微信小程序  • 教练端App  • 管理后台PC  • 硬件设备    │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ CDN层                                                    │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 静态资源加速  • 图片优化  • 视频加速                     │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 负载均衡层                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • Nginx (反向代理)  • 负载均衡策略  • SSL/TLS              │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 应用服务器层                                             │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • Spring Boot应用 (多实例部署)  • Docker容器化                │   │
│  │ • 健康检查  • 自动扩缩容  • 滚动更新                       │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 数据库层                                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • PostgreSQL主从复制  • Redis集群 (可选)  • 备份策略         │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                              │                                      │
│                              ▼                                      │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 监控运维层                                               │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • 日志收集  • 性能监控  • 告警通知  • 自动化运维           │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

二、模块设计

2.1 模块划分

┌─────────────────────────────────────────────────────────────────────────┐
│                    gym-manage-server 父工程                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-common 公共模块                                        │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • gym-common-core (核心工具类、常量、枚举)                     │   │
│  │ • gym-common-redis (Redis配置可选)                            │   │
│  │ • gym-common-security (安全认证公共组件)                      │   │
│  │ • gym-common-log (日志公共组件)                                │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-api API网关模块                                     │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • controller (HTTP接口)  • dto (数据传输对象)                 │   │
│  │ • vo (视图对象)  • config (API配置)                            │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-service 业务服务模块                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • gym-service-member (会员服务)                                │   │
│  │ • gym-service-booking (预约服务)                               │   │
│  │ • gym-service-checkin (签到服务)                               │   │
│  │ • gym-service-course (课程服务)                                │   │
│  │ • gym-service-coach (教练服务)                                 │   │
│  │ • gym-service-finance (财务服务)                               │   │
│  │ • gym-service-data (数据服务)                                  │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-domain 领域模型模块                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • model (领域模型)  • event (领域事件)  • service (领域服务)   │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-infrastructure 基础设施模块                         │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • repository (数据仓储)  • cache (缓存配置)                   │   │
│  │ • external (外部服务集成)  • config (基础配置)                │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ gym-starter 启动模块                                  │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • gym-admin (管理后台启动器)                                   │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

2.2 模块职责

模块 职责 依赖
gym-common-core 提供通用工具类、常量定义、异常处理
gym-common-security 提供JWT认证、权限校验 gym-common-core
gym-common-redis 提供Redis缓存支持(可选) gym-common-core
gym-common-log 提供统一日志记录 gym-common-core
gym-api 提供HTTP接口、路由转发 gym-service-*
gym-service-member 会员管理业务逻辑 gym-domain, gym-infrastructure
gym-service-booking 预约管理业务逻辑 gym-domain, gym-infrastructure
gym-service-checkin 签到管理业务逻辑 gym-domain, gym-infrastructure
gym-service-course 课程管理业务逻辑 gym-domain, gym-infrastructure
gym-service-coach 教练管理业务逻辑 gym-domain, gym-infrastructure
gym-service-finance 财务管理业务逻辑 gym-domain, gym-infrastructure
gym-service-data 数据分析业务逻辑 gym-domain, gym-infrastructure
gym-domain 领域模型、领域事件、领域服务
gym-infrastructure 数据仓储、缓存、外部服务集成 gym-domain
gym-starter 应用启动器 所有业务模块

2.3 模块交互

┌─────────────────────────────────────────────────────────────────────────┐
│                          模块交互                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌──────────┐                                                         │
│  │  客户端  │                                                         │
│  └─────┬────┘                                                         │
│        │ HTTP/HTTPS                                                     │
│        ▼                                                               │
│  ┌─────────────────────────────────────────────────────────────────┐       │
│  │ gym-api (API网关)                                         │       │
│  └─────────────┬───────────────────────────────────────────────┘       │
│                │                                                       │
│      ┌─────────┼─────────┐                                           │
│      ▼         ▼         ▼                                           │
│  ┌────────┐ ┌────────┐ ┌────────┐                                   │
│  │member  │ │booking │ │checkin │                                   │
│  │service │ │service │ │service │                                   │
│  └───┬────┘ └───┬────┘ └───┬────┘                                   │
│      │           │           │                                         │
│      └───────────┼───────────┘                                         │
│                  ▼                                                   │
│          ┌───────────────┐                                             │
│          │ gym-domain   │                                             │
│          └───────┬───────┘                                             │
│                  │                                                       │
│                  ▼                                                       │
│          ┌───────────────┐                                             │
│          │ gym-infra    │                                             │
│          └───────┬───────┘                                             │
│                  │                                                       │
│      ┌───────────┼───────────┐                                         │
│      ▼           ▼           ▼                                         │
│  ┌────────┐ ┌────────┐ ┌────────┐                                   │
│  │  PG    │ │Redis   │ │External│                                   │
│  └────────┘ └────────┘ └────────┘                                   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

三、接口设计

3.1 接口规范

3.1.1 RESTful API设计原则

  • 使用HTTP标准方法:GET(查询)、POST(创建)、PUT(更新)、DELETE(删除)
  • 使用HTTP状态码表示请求结果:200(成功)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在)、500(服务器错误)
  • 使用JSON格式进行数据交换
  • 使用统一的响应结构

3.1.2 统一响应结构

{
  "code": 200,
  "message": "success",
  "data": {},
  "timestamp": 1234567890
}

3.1.3 错误响应结构

{
  "code": 400,
  "message": "参数错误",
  "data": null,
  "timestamp": 1234567890
}

3.1.4 分页响应结构

{
  "code": 200,
  "message": "success",
  "data": {
    "list": [],
    "total": 100,
    "page": 1,
    "pageSize": 10
  },
  "timestamp": 1234567890
}

3.2 接口分组

┌─────────────────────────────────────────────────────────────────────────┐
│                          接口分组                                       │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 认证接口 /v1/auth                                        │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • POST /login (登录)  • POST /logout (登出)                   │   │
│  │ • POST /refresh (刷新Token)  • POST /wechat-login (微信登录)  │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 会员接口 /v1/members                                     │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET / (会员列表)  • GET /{id} (会员详情)                   │   │
│  │ • POST / (创建会员)  • PUT /{id} (更新会员)                   │   │
│  │ • GET /{id}/cards (会员卡列表)  • GET /{id}/benefits (权益列表)│   │
│  │ • GET /{id}/bookings (预约记录)                               │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 课程接口 /v1/courses                                     │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET / (课程列表)  • GET /{id} (课程详情)                   │   │
│  │ • POST / (创建课程)  • PUT /{id} (更新课程)                   │   │
│  │ • GET /{id}/slots (可预约时段)                                │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 预约接口 /v1/bookings                                   │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET / (预约列表)  • GET /{id} (预约详情)                   │   │
│  │ • POST / (创建预约)  • POST /{id}/cancel (取消预约)          │   │
│  │ • GET /my (我的预约)                                          │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 签到接口 /v1/checkins                                   │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET / (签到列表)  • POST /scan (扫码签到)                   │   │
│  │ • POST /manual (手动签到)  • GET /my (我的签到)               │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 教练接口 /v1/coaches                                     │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET / (教练列表)  • GET /{id} (教练详情)                   │   │
│  │ • GET /{id}/schedule (教练排班)  • GET /{id}/slots (可预约时段)│   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │ 数据看板 /v1/dashboard                                 │   │
│  ├─────────────────────────────────────────────────────────────────┤   │
│  │ • GET /overview (今日概览)  • GET /trends (趋势数据)          │   │
│  │ • GET /rankings (排行数据)                                    │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

3.3 接口版本管理

3.3.1 版本策略

  • 采用URL路径版本控制:/v1/、/v2/
  • 主版本号变更表示不兼容的API变更
  • 次版本号变更表示向后兼容的功能新增
  • 修订版本号变更表示向后兼容的问题修复

3.3.2 版本兼容性

  • 新版本API发布后,旧版本API至少维护6个月
  • 废弃API在响应头中添加Warning字段
  • 提供API版本迁移指南

四、安全设计

4.1 认证机制

4.1.1 JWT认证

┌─────────────────────────────────────────────────────────────────────────┐
│                          JWT认证流程                                   │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐   │
│  │  用户    │────▶│  登录    │────▶│  验证    │────▶│  生成    │   │
│  │  登录    │     │  请求    │     │  凭证    │     │  Token    │   │
│  └──────────┘     └──────────┘     └──────────┘     └──────────┘   │
│                                                         │           │
│                                                         ▼           │
│                                                 ┌──────────┐       │
│                                                 │  返回    │       │
│                                                 │  Token    │       │
│                                                 └──────────┘       │
│                                                         │           │
│                                                         ▼           │
│                                                 ┌──────────┐       │
│                                                 │  后续    │       │
│                                                 │  请求    │       │
│                                                 └──────────┘       │
│                                                         │           │
│                                                         ▼           │
│                                                 ┌──────────┐       │
│                                                 │  携带    │       │
│                                                 │  Token    │       │
│                                                 └──────────┘       │
│                                                                         │
│  Token结构:                                                            │
│  • Header: 算法、类型                                                  │
│  • Payload: 用户ID、角色、过期时间                                       │
│  • Signature: 签名                                                     │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

4.1.2 Token刷新机制

  • Access Token有效期:2小时
  • Refresh Token有效期:7天
  • Access Token过期时使用Refresh Token刷新
  • Refresh Token过期时需要重新登录

4.2 权限控制

4.2.1 RBAC权限模型

┌─────────────────────────────────────────────────────────────────────────┐
│                          RBAC权限模型                                 │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐        │
│  │  用户    │──▶│  角色    │──▶│  权限    │──▶│  资源    │        │
│  │  User    │  │  Role    │  │Permission│  │ Resource │        │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘        │
│                                                                         │
│  权限示例:                                                              │
│  • member:view (查看会员)                                                │
│  • member:edit (编辑会员)                                                │
│  • member:delete (删除会员)                                              │
│  • booking:create (创建预约)                                              │
│  • booking:cancel (取消预约)                                              │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

4.2.2 权限校验流程

  1. 用户登录后获取角色和权限
  2. 每次请求时校验权限
  3. 无权限时返回403错误
  4. 支持权限继承和组合

4.3 数据安全

4.3.1 数据加密

  • 敏感数据(手机号、身份证)使用AES-256加密存储
  • 密码使用BCrypt加密
  • 传输数据使用HTTPS加密
  • 数据库连接使用SSL/TLS

4.3.2 数据脱敏

  • 手机号脱敏:138****5678
  • 身份证脱敏:110101********1234
  • 银行卡脱敏:6222************1234

4.3.3 数据备份

  • 每日全量备份
  • 每小时增量备份
  • 备份数据加密存储
  • 备份数据异地容灾

4.4 接口安全

4.4.1 防重放攻击

  • 每个请求携带时间戳
  • 时间戳有效期:5分钟
  • 请求签名验证

4.4.2 防SQL注入

  • 使用参数化查询
  • 使用R2DBC响应式数据库访问
  • 输入参数校验和过滤

4.4.3 防XSS攻击

  • 输入内容过滤和转义
  • 响应头设置Content-Security-Policy
  • 使用白名单过滤

五、性能设计

5.1 性能目标

指标 目标值 测量方法
响应时间 ≤ 2秒 请求响应时间
并发处理能力 ≥ 1000 QPS 每秒处理请求数
数据库查询时间 ≤ 100ms SQL执行时间
缓存命中率 ≥ 80% 缓存命中次数/总请求次数
系统可用性 ≥ 99.9% (总时间-故障时间)/总时间

5.2 性能优化策略

┌─────────────────────────────────────────────────────────────────────────┐
│                          性能优化策略                                  │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. 缓存策略                                                             │
│     ├── Caffeine本地缓存 (热点数据)                                      │
│     ├── Redis分布式缓存 (可选)                                           │
│     ├── 数据库查询结果缓存                                                │
│     └── 缓存预热和失效策略                                              │
│                                                                         │
│  2. 数据库优化                                                           │
│     ├── 索引优化                                                        │
│     ├── 查询优化                                                        │
│     ├── 分页查询                                                        │
│     └── 读写分离 (后期)                                                  │
│                                                                         │
│  3. 响应式编程                                                           │
│     ├── WebFlux非阻塞IO                                                  │
│     ├── R2DBC响应式数据库访问                                             │
│     └── 异步处理                                                         │
│                                                                         │
│  4. 前端优化                                                             │
│     ├── 资源压缩                                                        │
│     ├── CDN加速                                                         │
│     ├── 懒加载                                                          │
│     └── 防抖节流                                                        │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

5.3 高并发场景处理

┌─────────────────────────────────────────────────────────────────────────┐
│                          高并发场景处理                                │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. 限流保护                                                             │
│     └── 令牌桶限流,防止系统过载                                        │
│                                                                         │
│  2. 熔断降级                                                             │
│     └── 服务异常时快速失败,防止雪崩                                      │
│                                                                         │
│  3. 分布式锁                                                             │
│     └── Redis分布式锁,保证数据一致性                                      │
│                                                                         │
│  4. 乐观锁                                                               │
│     └── 版本号控制,冲突时重试                                          │
│                                                                         │
│  5. 排队机制                                                             │
│     └── 请求进入队列,异步处理结果                                       │
│                                                                         │
│  6. 候补机制                                                             │
│     └── 满员后自动进入候补队列,有人取消时自动补位                       │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

六、可扩展性设计

6.1 水平扩展

┌─────────────────────────────────────────────────────────────────────────┐
│                          水平扩展方案                                    │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. 无状态设计                                                           │
│     ├── Session外置到Redis                                              │
│     ├── 本地不存储用户状态                                               │
│     └── 任意实例可处理任意请求                                           │
│                                                                         │
│  2. 负载均衡                                                             │
│     ├── 轮询: 默认策略                                                  │
│     ├── 加权轮询: 根据服务器性能分配权重                                 │
│     └── 最少连接: 请求分配给连接数最少的服务器                           │
│                                                                         │
│  3. 服务拆分(后期)                                                     │
│     ├── 会员服务独立部署                                                │
│     ├── 预约服务独立部署                                                │
│     └── 数据服务独立部署                                                │
│                                                                         │
│  4. 数据库扩展(后期)                                                   │
│     ├── 读写分离                                                        │
│     ├── 分库分表                                                        │
│     └── 多活架构                                                        │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

6.2 功能扩展

┌─────────────────────────────────────────────────────────────────────────┐
│                          功能扩展点                                      │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. 支付扩展                                                             │
│     ├── 预留支付接口抽象                                                │
│     ├── 支持微信支付、支付宝、银联等                                     │
│     └── 可扩展其他支付渠道                                              │
│                                                                         │
│  2. 硬件扩展                                                             │
│     ├── 签到网关抽象设计                                                │
│     ├── 支持多种签到设备                                                │
│     └── 可扩展智能硬件                                                  │
│                                                                         │
│  3. 消息扩展                                                             │
│     ├── 消息模板可配置                                                  │
│     ├── 支持多渠道推送                                                  │
│     └── 可扩展新的消息渠道                                              │
│                                                                         │
│  4. 报表扩展                                                             │
│     ├── 报表模板可配置                                                  │
│     ├── 支持自定义报表                                                  │
│     └── 可扩展BI工具对接                                                │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

七、监控与运维

7.1 监控体系

┌─────────────────────────────────────────────────────────────────────────┐
│                          监控体系                                        │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. 基础监控                                                             │
│     ├── CPU使用率                                                       │
│     ├── 内存使用率                                                      │
│     ├── 磁盘使用率                                                      │
│     ├── 网络IO                                                          │
│     └── 进程状态                                                        │
│                                                                         │
│  2. 应用监控                                                             │
│     ├── JVM监控(GC、堆内存、线程)                                       │
│     ├── HTTP请求监控(QPS、响应时间、错误率)                               │
│     ├── 数据库连接池监控                                                │
│     └── 缓存命中率监控                                                  │
│                                                                         │
│  3. 业务监控                                                             │
│     ├── 会员注册数                                                      │
│     ├── 预约成功率                                                      │
│     ├── 签到成功率                                                      │
│     └── 支付成功率                                                      │
│                                                                         │
│  4. 告警机制                                                             │
│     ├── 告警规则配置                                                    │
│     ├── 告警通知方式(邮件、短信、钉钉)                                   │
│     └── 告警升级策略                                                    │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

7.2 日志规范

7.2.1 日志级别

  • ERROR:错误日志,系统异常
  • WARN:警告日志,潜在问题
  • INFO:信息日志,关键业务操作
  • DEBUG:调试日志,开发调试使用

7.2.2 日志格式

[时间] [级别] [线程] [类名] - 日志内容
[2026-03-04 10:00:00] [INFO] [http-nio-8080-exec-1] [com.gym.controller.MemberController] - 会员登录成功, memberId=12345

7.2.3 日志存储

  • 日志文件按日期滚动
  • 日志文件保留30天
  • 错误日志单独存储
  • 支持日志查询和导出

八、附录

8.1 技术选型清单

技术类别 技术选型 版本 用途
前端框架 Vue3 3.x 前端开发
前端构建 Vite 5.x 前端构建
跨平台框架 uniapp 3.x 小程序开发
后端框架 Spring Boot 3.x 应用框架
响应式编程 Spring WebFlux 3.x 响应式Web开发
数据库 PostgreSQL 15+ 主数据库
数据库访问 R2DBC 1.x 响应式数据库访问
缓存 Caffeine 3.x 本地缓存
缓存(可选) Redis 7.x 分布式缓存
安全框架 Spring Security 6.x 安全认证授权
数据库版本管理 Flyway 9.x 数据库版本管理
容器化 Docker 24+ 容器化部署
负载均衡 Nginx 1.24+ 反向代理负载均衡

8.2 术语表

术语 定义
租户(Tenant) 系统的多租户架构中的独立业务实体,如一个连锁品牌
门店(Store) 租户下的具体经营场所
会员(Member) 在门店注册的用户
权益(Benefit) 会员卡包含的时长、次数、储值、等级等权益
可预约资源(Bookable Resource) 团课、私教、场地、线上课程等可被预约的对象
时段(Slot) 资源的可预约时间窗口
JWT JSON Web Token,用于身份认证
RBAC Role-Based Access Control,基于角色的访问控制
QPS Queries Per Second,每秒查询数
SLA Service Level Agreement,服务等级协议

文档结束