本目录包含电子拍卖系统各个核心模块的详细技术文档,涵盖系统架构、功能实现、API接口、使用指南等内容。
┌─────────────────────────────────────────────────────────────────────┐
│ 拍卖系统核心模块架构 │
└─────────────────────────────────────────────────────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ 商家端/主播端 │ │ 用户端 │
└──────────────────────┘ └──────────────────────┘
│ │
│ ┌─────────────────────────┴──────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ API网关层 │
│ (Spring Security + JWT认证 + 全局异常处理 + 参数校验) │
└───────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 用户认证和权限 │ │ 商品管理系统 │ │ 拍卖管理系统 │
│ 模块 │ │ 模块 │ │ 模块 │
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 出价管理系统 │◄───│ WebSocket实时 │────│ 订单管理系统 │
│ 模块 │ │ 通讯模块 │ │ 模块 │
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ 支付管理系统 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ MySQL │ │ Redis │ │ WebSocket│ │ 文件存储 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└───────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 用户端 │ │ 后端API │ │ 数据库 │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
│ 1. 用户登录 │ │
├────────────────────► │
│ │ │
│ │ 2. 验证用户信息 │
│ ├────────────────────►
│ │ │
│ │ 3. 返回用户数据 │
│ │◄────────────────────┤
│ │ │
│ 4. 返回JWT Token │ │
│◄────────────────────┤ │
│ │ │
│ 5. 浏览拍卖商品 │ │
├────────────────────► │
│ │ 6. 查询商品数据 │
│ ├────────────────────►
│ │ │
│ │ 7. 返回商品列表 │
│ │◄────────────────────┤
│ │ │
│ 8. 发起出价请求 │ │
├────────────────────► │
│ │ 9. 验证并处理出价 │
│ ├────────────────────►
│ │ │
│ │10. WebSocket通知 │
│ │ 所有参与者 │
│◄────────────────────┤ │
│ │ │
│ 11. 拍卖结束创建订单│ │
│ ├────────────────────►
│ │ │
│ │12. 返回订单信息 │
│ │◄────────────────────┤
│ │ │
│ 13. 发起支付 │ │
├────────────────────► │
│ │14. 处理支付请求 │
│ ├────────────────────►
│ │ │
│ 15. 支付完成通知 │ │
│◄────────────────────┤ │
┌──────────────────────────────────────────────────────────────┐
│ 拍卖业务完整流程 │
└──────────────────────────────────────────────────────────────┘
┌────────────────┐
│ 1. 商家准备 │
│ - 上传商品 │
│ - 设置拍卖参数 │
│ - 配置拍卖规则 │
└───────┬────────┘
│
▼
┌────────────────┐
│ 2. 创建拍卖 │
│ - 选择商品 │
│ - 设定起拍价 │
│ - 设定加价幅度 │
│ - 设定封顶价 │
└───────┬────────┘
│
▼
┌────────────────┐
│ 3. 拍卖开始 │
│ - WebSocket │
│ 通知开始 │
│ - 状态变为ACTIVE│
└───────┬────────┘
│
▼
┌────────────────┐
│ 4. 用户出价 │
│ - 验证价格 │
│ - 检查频率 │
│ - 更新排行榜 │
│ - WebSocket │
│ 实时推送 │
└───────┬────────┘
│
▼
┌────────────────┐
│ 5. 拍卖延时? │
│ - 最后5分钟 │
│ 有人出价 │
│ - 自动延时15秒 │
└───────┬────────┘
│
▼ (继续)
┌────────────────┐ ▼ (达到结束条件)
│ 6. 拍卖结束 │◄───────────────┐
│ - 时间到/封顶价│ │
│ - 状态变COMPLETED│ │
└───────┬────────┘ │
│ │
▼ │
┌────────────────┐ │
│ 7. 自动结算 │ │
│ - 检测最高出价者│ │
│ - 生成订单 │ │
└───────┬────────┘ │
│ │
▼ │
┌────────────────┐ │
│ 8. 支付流程 │ │
│ - 用户支付 │ │
│ - 状态更新 │ │
└───────┬────────┘ │
│ │
▼ │
┌────────────────┐ │
│ 9. 完成 │ │
│ - 订单完成 │ │
│ - 商家发货 │ │
└──────────────────┘ │
│
┌────────┴─────────┐
│ (返回继续拍卖) │
└──────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 请求处理状态转换图 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 请求到达 │
└──────┬───────┘
│
▼
┌──────────────┐
│ 权限验证 │
└──────┬───────┘
│
┌──────────┴──────────┐
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ 验证失败 │ │ 验证成功 │
│ 返回403 │ │ │
└──────────────┘ └──────┬──────┘
│
▼
┌──────────────┐
│ 业务逻辑处理 │
└──────┬───────┘
│
┌───────────┴───────────┐
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ 处理成功 │ │ 处理失败 │
│ │ │ │
┌────────┴────────┐ │ │ ┌────────┴────────┐
│ │ │ │ │ │
┌────▼────┐ ┌────▼────┐│ ┌──▼───┐ ┌──────────┴───┐
│返回数据 │ │异步处理 ││ │返回错误│ │记录日志 │
└─────────┘ └─────────┘│ └───────┘ └──────────────┘
│
┌──────┴──────┐
│WebSocket推送│
│状态更新 │
└─────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 模块间数据流转图 │
└──────────────────────────────────────────────────────────────┘
┌──────────────────┐
│ 用户模块 │ ──┐
│ (用户信息/权限) │ │ 提供用户信息
└──────────────────┘ │ 和权限验证
│
▼
┌──────────────────────────────────────┐
│ 拍卖管理系统 │
│ ┌─────────────────────────────────┐ │
│ │ 拍卖创建 → 拍卖进行 → 拍卖结束 │ │
│ └─────────────────────────────────┘ │
└──────────────┬───────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 出价管理系统 │ │WebSocket通讯 │ │ 订单管理系统 │
│ (实时出价) │ │ (实时推送) │ │ (自动生成) │
└───────────────┘ └───────────────┘ └───────┬───────┘
│ │ │
│ │ │
└───────────────┴───────────────┘
│
▼
┌───────────────────┐
│ 支付管理系统 │
│ (支付处理/状态管理) │
└───────────────────┘
┌──────────────────┐ ┌──────────────────┐
│ 商品模块 │ ──────────────────►│ 拍卖模块 │
│ (商品信息) │ │ (关联商品) │
└──────────────────┘ └──────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 实时数据同步流程 │
└──────────────────────────────────────────────────────────────┘
┌─────────────┐ Redis缓存 ┌─────────────┐
│ MySQL │ ◄─────────────────► │ WebSocket │
│ (持久化存储) │ │ (实时推送) │
└──────┬──────┘ └──────┬──────┘
│ │
│ 数据变更 │
▼ │
┌─────────────┐ │
│ 出价事件 │ │
│ - 新出价 │────┐ │
│ - 价格更新 │ │ │
│ - 排行榜变化│ │ │
└─────────────┘ │ │
▼ │
┌──────────────────┐ │
│ 分布式锁保护 │ │
│ 防止并发冲突 │ │
└──────┬───────────┘ │
│ │
│ 原子操作 │
▼ │
┌──────────────────┐ │
│ Redis数据更新 │──────────────┘
│ - 当前价格 │
│ - 最高出价者 │
│ - 排行榜数据 │
└──────┬───────────┘
│
│ 订阅发布
▼
┌──────────────────┐
│ WebSocket推送 │
│ - 新出价通知 │
│ - 被超越通知 │
│ - 领先通知 │
└──────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 用户状态转换图 │
└──────────────────────────────────────────────────────────────┘
┌─────────────┐
│ PENDING │ (待审核)
│ (新建用户) │
└──────┬──────┘
│
▼ (审核通过)
┌─────────────┐
│ ACTIVE │ (正常)
│ │◄───────┐
└──────┬──────┘ │
│ │ (管理员解禁)
│ (违规/锁定) │
▼ │
┌─────────────┐ │
│ DISABLED │ │
│ (禁用) │─────────┘
└──────┬──────┘
│
│ (管理员删除)
▼
┌─────────────┐
│ DELETED │ (已删除)
└─────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 拍卖状态转换图 │
└──────────────────────────────────────────────────────────────┘
┌─────────────┐
│ PENDING │ (待开始)
│ (创建完成) │
└──────┬──────┘
│
│ (时间到/手动开始)
▼
┌─────────────┐
│ ACTIVE │ (进行中) ◄─────────┐
│ │───────────┐ │
└──────┬──────┘ │ │
│ │ │ (异常取消)
┌──────┴─────────┐ │ │
│ │ │ │
┌────▼─────┐ ┌─────▼────┐ │ │
│ 时间到 │ │ 达封顶价 │ │ │
└────┬────┘ └─────┬────┘ │ │
│ │ │ │
└───────────┬───┘ │ │
│ │ │
▼ │ │
┌───────────────┐ │ │
│ COMPLETED │ │ │
│ (已完成) │ │ │
└───────────────┘ │ │
│ │
┌────┴───┐ │
│ │ │
┌────▼─────┐ │ │
│CANCELLED │ │ │
│ (已取消) │─┘ │
└──────────┘ │
┌──────────────────────────────────────────────────────────────┐
│ 订单状态转换图 │
└──────────────────────────────────────────────────────────────┘
┌─────────────┐
│PENDING_PAYMENT│ (待支付)
│ (拍卖成交创建) │
└──────┬──────┘
│
┌──────┴──────────┐
│ │
┌────▼─────┐ ┌─────▼────┐
│ 支付成功 │ │ 超时/取消 │
└────┬────┘ └─────┬────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ PAID │ │CANCELLED │
│ (已支付) │ │ (已取消) │
└────┬─────┘ └──────────┘
│
│ (确认收货/自动完成)
▼
┌──────────┐
│COMPLETED │
│ (已完成) │
└──────────┘
┌──────────────────────────────────────────────────────────────┐
│ 系统部署架构图 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 用户端 │
│ (Web/Mobile) │
└──────┬───────┘
│
┌────────▼─────────┐
│ 负载均衡器 │
│ (Nginx/ELB) │
└──────┬───────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 应用节点1 │ │ 应用节点2 │ │ 应用节点3 │
│ (Spring Boot)│ │ (Spring Boot)│ │ (Spring Boot)│
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└──────────────────┼──────────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Redis集群 │ │ MySQL主从 │
│ (缓存/分布式锁) │ │ (数据持久化) │
└─────────────────┘ └─────────────────┘
┌──────────────┐
│ 监控系统 │
│ (Prometheus/ │
│ Grafana) │
└──────────────┘
┌──────────────┐
│ 日志系统 │
│ (ELK Stack) │
└──────────────┘
┌──────────────────────────────────────────────────────────────┐
│ Docker容器化部署架构 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Docker Compose │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ services: │ │
│ │ mysql: │ │
│ │ image: mysql:8.0 │ │
│ │ redis: │ │
│ │ image: redis:7-alpine │ │
│ │ auction-app: │ │
│ │ build: . │ │
│ │ depends_on: │ │
│ │ - mysql │ │
│ │ - redis │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 性能监控指标 │
└──────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 系统性能指标 │
└──────────────────────────────────────────────────────────────┘
性能指标:
┌─────────────────────────────────────────────────────────────┐
│ QPS (每秒查询数) │
│ ████████████████████████████████████████░░░░ 800/1000 │
│ │
│ 响应时间 (平均) │
│ ████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 120ms/500ms │
│ │
│ 错误率 │
│ ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0.5%/1% │
│ │
│ 并发连接数 │
│ ████████████████████████████░░░░░░░░░░░░░░░░ 150/200 │
└─────────────────────────────────────────────────────────────┘
模块性能:
┌─────────────────────────────────────────────────────────────┐
│ 用户认证模块 ████████████████████░░░░░ 响应: 50ms │
│ 拍卖管理模块 ████████████████████████████ 响应: 120ms │
│ 出价处理模块 ████████████████░░░░░░░░░░░░░ 响应: 200ms │
│ WebSocket模块 ████████████████████████████ 延迟: 10ms │
│ 订单处理模块 ████████████████████░░░░░░░░░░ 响应: 150ms │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 认证授权安全流程 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 用户端 │
└──────┬───────┘
│ 1. 登录请求
├─────────────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 限流检查 │ │ 参数验证 │
│ (防暴力破解) │ │ (格式验证) │
└──────┬───────┘ └──────┬───────┘
│ │
│ 2. 通过 │ 3. 通过
└──────────┬───────────┘
│
▼
┌──────────────┐
│ 用户认证 │
│ (查询用户) │
└──────┬───────┘
│
┌────────┴────────┐
│ │
┌────▼────┐ ┌─────▼────┐
│ 认证成功 │ │ 认证失败 │
└────┬────┘ └─────┬────┘
│ │
│ 4. 生成Token │ 5. 记录失败日志
│ + 刷新Token │ + 增加失败计数
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Token返回 │ │ 错误响应 │
└──────────────┘ └──────────────┘
┌──────────────┐
│ API请求 │
└──────┬───────┘
│ 6. 携带Token
├─────────────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Token验证 │ │ 黑名单检查 │
│ (签名验证) │ │ (是否注销) │
└──────┬───────┘ └──────┬───────┘
│ │
│ 7. 有效 │ 8. 未注销
└──────────┬───────────┘
│
▼
┌──────────────┐
│ 权限验证 │
│ (角色权限) │
└──────┬───────┘
│
┌────────┴────────┐
│ │
┌────▼────┐ ┌─────▼────┐
│ 有权限 │ │ 无权限 │
└────┬────┘ └─────┬────┘
│ │
│ 9. 处理请求 │ 10. 返回403
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 返回数据 │ │ 权限拒绝 │
└──────────────┘ └──────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 多层安全防护体系 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 第一层:网络层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • HTTPS加密传输 │ │
│ │ • 防火墙规则配置 │ │
│ │ • DDoS防护 │ │
│ │ • IP白名单/黑名单 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第二层:接口层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 接口限流保护 │ │
│ │ • 请求参数校验 │ │
│ │ • XSS攻击防护 │ │
│ │ • SQL注入防护 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第三层:认证层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • JWT Token验证 │ │
│ │ • Token黑名单机制 │ │
│ │ • 会话过期检查 │ │
│ │ • 单设备登录控制 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第四层:授权层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • RBAC权限模型 │ │
│ │ • 资源级权限控制 │ │
│ │ • 操作级权限验证 │ │
│ │ • 数据权限隔离 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第五层:业务层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 业务逻辑验证 │ │
│ │ • 数据一致性检查 │ │
│ │ • 并发操作保护 │ │
│ │ • 异常处理机制 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第六层:数据层 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 数据加密存储 │ │
│ │ • 敏感数据脱敏 │ │
│ │ • 数据访问审计 │ │
│ │ • 备份恢复机制 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 本地开发环境架构 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 开发者机器 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • JDK 17 │ │
│ │ • Maven 3.6+ │ │
│ │ • IDE (IntelliJ IDEA / Eclipse) │ │
│ │ • Git │ │
│ │ • Postman / Swagger UI │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 本地服务容器 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ MySQL 8.0 (Docker容器) │ │
│ │ Redis 6.0+ (Docker容器) │ │
│ │ 拍卖系统应用 (Spring Boot) │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 开发工具链 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • Lombok (代码生成) │ │
│ │ • MyBatis-Plus (代码生成) │ │
│ │ • Spring Boot DevTools (热部署) │ │
│ │ • Maven Compiler Plugin │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 测试环境架构 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 测试服务器 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ CI/CD流水线 │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ 1. 代码提交 → Git │ │ │
│ │ │ 2. 自动构建 → Maven │ │ │
│ │ │ 3. 单元测试 → JUnit │ │ │
│ │ │ 4. 集成测试 → MockMvc │ │ │
│ │ │ 5. 代码部署 → 测试环境 │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 测试数据库 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 测试数据自动生成 │ │
│ │ • 测试案例数据隔离 │ │
│ │ • 测试后自动清理 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 系统监控告警体系 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 应用层监控 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • JVM内存监控 │ │
│ │ • GC频率和耗时 │ │
│ │ • 线程池状态 │ │
│ │ • 接口响应时间 │ │
│ │ • 错误率统计 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 中间件监控 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • Redis连接数、内存使用 │ │
│ │ • MySQL连接池、慢查询 │ │
│ │ • WebSocket连接数 │ │
│ │ • 分布式锁状态 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 业务层监控 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 拍卖成功率 │ │
│ │ • 出价频率分布 │ │
│ │ • 订单转化率 │ │
│ │ • 支付成功率 │ │
│ │ • 用户活跃度 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 告警机制 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 错误率超阈值 → 邮件/短信告警 │ │
│ │ • 响应时间过长 → 即时通知 │ │
│ │ • 服务不可用 → 紧急告警 │ │
│ │ • 资源使用异常 → 预警通知 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 缓存一致性保障机制 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 业务 │ │ MySQL │ │ Redis │
│ 层 │ │ (主存储) │ │ (缓存) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
│ 1. 读取数据 │ │
├─────────────────────┤ │
│ │ 2. 查询数据 │
│ ├─────────────────────┤
│ │ │
│ 3. 数据返回 │ │
│◄────────────────────┤ │
│ │ │
│ 4. 写入缓存 │ │
├─────────────────────────────────────────┤
│ │ │
│ │ 5. 更新数据 │
│ ├─────────────────────┤
│ │ │
│ │ 6. 删除缓存 │
│ ├─────────────────────┤
│ │ │
│ 7. 重新查询 │ │
├─────────────────────┤ │
│ │ 8. 查询数据 │
│ ├─────────────────────┤
│ │ │
│ │ 9. 更新缓存 │
│ ├─────────────────────┤
缓存策略:
┌─────────────────────────────────────────────────────────────┐
│ • 读操作:先查缓存,未命中则查DB并更新缓存 │
│ • 写操作:先更新DB,再删除缓存 │
│ • 热点数据:设置合理的过期时间 │
│ • 一致性:使用分布式锁保证并发更新的一致性 │
│ • 容错:缓存异常时直接查询DB │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 异常处理统一流程 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ API请求 │
└──────┬───────┘
│
▼
┌──────────────┐
│ Controller │
└──────┬───────┘
│
│ 异常抛出
▼
┌─────────────────────────────────────────────────────────────┐
│ 全局异常处理器 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 异常类型分类: │ │
│ │ • BizException (业务异常) │ │
│ │ • AuthException (认证异常) │ │
│ │ • PermissionException (权限异常) │ │
│ │ • MethodArgumentNotValidException (参数校验异常) │ │
│ │ • Exception (系统异常) │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
├─ 业务异常 ──► 返回业务错误码
├─ 认证异常 ──► 返回401
├─ 权限异常 ──► 返回403
├─ 参数异常 ──► 返回400
└─ 系统异常 ──► 返回500
日志记录:
┌─────────────────────────────────────────────────────────────┐
│ • 记录异常堆栈信息 │
│ • 记录请求参数 │
│ • 记录用户信息 │
│ • 记录异常时间 │
│ • 发送告警通知 │
└─────────────────────────────────────────────────────────────┘
- 功能: 用户注册登录、JWT认证、权限管理、安全防护
- 适用人群: 全体开发者、安全工程师、运维人员
- 关键词: 认证、授权、JWT、RBAC、安全
- 核心内容:
- 用户注册与登录流程
- JWT Token管理机制
- RBAC权限模型
- 登录日志和操作日志
- 接口限流和防暴力破解
2. 拍卖管理系统技术文档
- 功能: 拍卖创建、状态管理、自动延时、异常处理
- 适用人群: 后端开发者、业务分析师
- 关键词: 拍卖、状态机、延时拍卖、自动结算
- 核心内容:
- 拍卖生命周期管理
- 自动延时拍卖机制
- 拍卖状态流转控制
- 拍卖创建和配置
- 拍卖监控和通知
3. 出价管理系统技术文档
- 功能: 实时出价处理、价格验证、排行榜管理、并发控制
- 适用人群: 后端开发者、性能工程师
- 关键词: 出价、排行榜、分布式锁、实时推送
- 核心内容:
- 实时出价处理流程
- 价格验证机制
- 排行榜管理和排名计算
- 分布式锁并发控制
- 出价频率限制
4. 订单管理系统技术文档
- 功能: 订单自动生成、状态管理、订单查询、统计分析
- 适用人群: 后端开发者、业务分析师
- 关键词: 订单、状态机、自动结算、数据统计
- 核心内容:
- 订单自动生成机制
- 订单状态流转管理
- 订单查询和统计
- 支付状态管理
- 订单数据一致性
5. 支付管理系统技术文档
- 功能: 模拟支付、异步处理、支付通知、异常处理
- 适用人群: 后端开发者、支付对接工程师
- 关键词: 支付、异步处理、WebSocket、通知
- 核心内容:
- 模拟支付处理流程
- 异步支付架构
- 支付状态管理
- 支付通知推送
- 支付异常处理
- 功能: 实时消息推送、房间管理、连接管理、心跳检测
- 适用人群: 前后端开发者、实时通讯工程师
- 关键词: WebSocket、实时推送、房间管理、心跳
- 核心内容:
- WebSocket连接管理
- 实时消息推送机制
- 房间管理和用户会话
- 消息协议和格式
- 客户端集成方案
7. 商品管理系统技术文档
- 功能: 商品创建、查询更新、图片管理、分类管理
- 适用人群: 后端开发者、商家运营
- 关键词: 商品、图片上传、分类管理、搜索
- 核心内容:
- 商品创建和验证
- 商品查询和搜索
- 图片上传和管理
- 商品分类管理
- 商品状态管理
┌──────────────────────────────────────────────────────────────┐
│ 水平扩展架构设计 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 负载均衡 │
│ (Nginx/LVS) │
└──────┬───────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 应用实例1 │ │ 应用实例2 │ │ 应用实例3 │
│ (Spring Boot) │ │ (Spring Boot) │ │ (Spring Boot) │
│ 端口:8080 │ │ 端口:8081 │ │ 端口:8082 │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└──────────────────┼──────────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Redis Sentinel │ │ MySQL Cluster │
│ (高可用缓存) │ │ (高可用数据库) │
└─────────────────┘ └─────────────────┘
扩展特性:
┌─────────────────────────────────────────────────────────────┐
│ • 无状态应用设计,支持水平扩展 │
│ • 共享Session存储在Redis中 │
│ • 分布式锁保证数据一致性 │
│ • 数据库连接池自动调整 │
│ • 支持动态增减实例 │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 数据库扩展策略 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 读写分离架构 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 应用层 │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 写操作 │ │ 读操作 │ │ │
│ │ │ (INSERT/ │ │ (SELECT) │ │ │
│ │ │ UPDATE) │ │ │ │ │
│ │ └──────┬───────┘ └──────┬───────┘ │ │
│ │ │ │ │ │
│ └─────────┼─────────────────────┼────────────────────────│ │
│ │ │ │ │
│ ┌─────────┼─────────────────────┼────────────────────────│ │
│ │ │ │ │ │
│ │ ▼ │ ▼ │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ 数据访问层 │ │ │
│ │ │ ┌────────────────┐ ┌────────────────┐ │ │
│ │ │ │ 主库路由 │ │ 从库路由 │ │ │
│ │ │ │ (Master) │ │ (Slave) │ │ │
│ │ │ └────────────────┘ └────────────────┘ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────│ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据库层 │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Master │◄──── binlog ────────│ Slave1 │ │
│ │ (主库) │ │ (从库1) │ │
│ └──────────────┘ └──────────────┘ │
│ │ │
│ binlog │
│ ▼ │
│ ┌──────────────┐ │
│ │ Slave2 │ │
│ │ (从库2) │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
数据分片策略:
┌─────────────────────────────────────────────────────────────┐
│ • 用户数据:按用户ID取模分片 │
│ • 拍卖数据:按拍卖ID范围分片 │
│ • 日志数据:按时间范围分片 │
│ • 订单数据:按创建时间分片 │
│ • 历史数据:归档到历史库 │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 服务容错机制设计 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 请求处理 │
└───────────────┬─────────────────────────────────────────────┘
│
▼
┌──────────────┐
│ 熔断器模式 │
│ (Circuit │
│ Breaker) │
└──────┬───────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 关闭 │ │ 开启 │ │ 半开 │
│(正常访问)│ │(拒绝访问)│ │(尝试恢复)│
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
│ 正常处理 │ 短路失败 │ 有限尝试
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 请求成功 │ │快速失败 │ │ 部分请求 │
│ 计数重置 │ │返回降级 │ │ 验证状态 │
└─────────┘ └─────────┘ └─────────┘
容错策略:
┌─────────────────────────────────────────────────────────────┐
│ • 熔断器:连续失败达到阈值后开启熔断,避免级联故障 │
│ • 降级服务:主服务异常时返回默认值或缓存数据 │
│ • 限流保护:超过容量限制时拒绝新请求 │
│ • 超时控制:设置合理的超时时间,避免长时间等待 │
│ • 重试机制:对于可重试的异常进行自动重试 │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 数据备份恢复策略 │
└──────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 备份策略 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 全量备份:每天凌晨2点执行 │ │
│ │ 增量备份:每小时执行一次 │ │
│ │ 日志备份:每15分钟执行一次 │ │
│ │ 实时备份:数据库操作日志实时同步 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 存储策略 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 本地存储:保留最近7天备份 │ │
│ │ 异地存储:保留最近30天备份 │ │
│ │ 云端存储:保留最近90天备份 │ │
│ │ 归档存储:重要数据永久归档 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 恢复策略 │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 数据恢复:支持PITR任意时间点恢复 │ │
│ │ 主从切换:主库故障时自动切换到从库 │ │
│ │ 容灾切换:数据中心故障时切换到异地 │ │
│ │ 快速恢复:关键数据优先恢复 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ 生产环境部署架构 │
└──────────────────────────────────────────────────────────────┘
┌──────────────┐
│ CDN节点 │
│ (静态资源) │
└──────┬───────┘
│
┌────────▼─────────┐
│ 负载均衡 │
│ (Nginx/ELB) │
└──────┬──────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Web服务器1 │ │ Web服务器2 │ │ Web服务器3 │
│ (Nginx) │ │ (Nginx) │ │ (Nginx) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└──────────────────┼──────────────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 应用服务器1 │ │ 应用服务器2 │ │ 应用服务器3 │
│ (Spring Boot)│ │ (Spring Boot)│ │ (Spring Boot)│
│ 端口:8080 │ │ 端口:8080 │ │ 端口:8080 │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└──────────────────┼──────────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Redis Cluster │ │ MySQL Master-Slave│
│ (高可用缓存) │ │ (主从复制) │
└─────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ 监控系统 │ │ 日志系统 │
│ (Prometheus) │ │ (ELK Stack) │
│ (Grafana) │ │ (Kibana) │
└─────────────────┘ └─────────────────┘
- 框架: Spring Boot 3.x
- 数据库: MySQL 8.0+
- 缓存: Redis 6.0+
- 通讯: WebSocket (STOMP)
- 安全: Spring Security + JWT
- ORM: MyBatis-Plus
- 框架: 可支持任何现代前端框架
- 通讯: WebSocket Client
- 状态管理: Redux/Vuex
- 部署: Docker / 传统部署
- 监控: Spring Boot Actuator
- 日志: Logback
- 阅读相关模块的技术文档
- 了解系统架构和业务流程
- 参考API接口文档进行集成
- 使用测试指南验证功能
每个技术文档都包含以下标准结构:
- 📋 文档信息
- 📖 目录
- 📖 系统概述
- 🏗️ 技术架构
- 💾 数据库设计
- ⚙️ 核心功能
- 🔌 API接口文档
- 📐 业务规则
- 🚀 使用指南
- 🧪 测试指南
- ❓ 常见问题
- 版本: 所有文档版本号为 v1.0.0
- 日期: 2026-05-30
- 维护: 拍卖系统开发团队
- 更新: 随系统功能迭代持续更新
- 用户认证和权限系统 - 了解基础认证机制
- 商品管理系统 - 理解基础CRUD操作
- 拍卖管理系统 - 掌握核心业务流程
- 出价管理系统 - 学习并发控制和实时处理
- 订单管理系统 - 理解状态机和数据一致性
- WebSocket实时通讯 - 掌握实时通讯技术
- 支付管理系统 - 学习异步处理和系统集成
- 系统架构设计 - 整体系统设计和优化
- 性能优化和监控 - 系统调优和运维
- 技术支持: tech-support@auction-system.com
- GitHub Issues: https://github.com/auction-system/issues
- 在线文档: https://docs.auction-system.com
- 项目仓库: GitHub
- API文档: Swagger UI
- 数据库脚本:
src/main/resources/db/migration/
如果您发现文档中的错误或有改进建议,欢迎:
- 提交Issue描述问题
- 提交Pull Request修正文档
- 联系维护团队进行讨论
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.0 | 2026-05-30 | 初始版本,包含7个核心模块文档 |
最后更新: 2026-05-30 维护团队: 拍卖系统开发团队