Initial commit
This commit is contained in:
236
plans/architecture_design.md
Normal file
236
plans/architecture_design.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# 智能办公管理系统 - 架构设计文档
|
||||
|
||||
## 项目概述
|
||||
智能办公管理系统是一个企业级应用,包含考勤管理、审批流程、文档协作和即时通讯四大核心模块。系统采用微服务架构思想,前后端分离设计。
|
||||
|
||||
## 技术栈
|
||||
|
||||
### 后端技术栈
|
||||
- **框架**: Spring Boot 3.2.x
|
||||
- **安全**: Spring Security 6 + JWT
|
||||
- **数据库**:
|
||||
- PostgreSQL 15 (主业务数据)
|
||||
- MongoDB 7 (文档存储)
|
||||
- Redis 7 (缓存/会话)
|
||||
- **消息队列**: RabbitMQ 3.12
|
||||
- **实时通信**: WebSocket + STOMP
|
||||
- **API文档**: SpringDoc OpenAPI 3
|
||||
- **监控**: Spring Boot Actuator + Prometheus + Grafana
|
||||
- **测试**: JUnit 5 + Mockito + Testcontainers
|
||||
|
||||
### 前端技术栈
|
||||
- **框架**: React 18 + TypeScript
|
||||
- **UI库**: Ant Design Pro 7.x
|
||||
- **状态管理**: Redux Toolkit + RTK Query
|
||||
- **路由**: React Router 6
|
||||
- **构建工具**: Vite 5
|
||||
- **图表**: ECharts 5
|
||||
- **实时**: Socket.IO Client
|
||||
|
||||
### 基础设施
|
||||
- **容器化**: Docker + Docker Compose
|
||||
- **CI/CD**: GitHub Actions
|
||||
- **部署**: 可部署到Kubernetes
|
||||
- **日志**: ELK Stack (Elasticsearch, Logstash, Kibana)
|
||||
|
||||
## 系统架构图
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "客户端层"
|
||||
Web[Web浏览器]
|
||||
Mobile[移动端]
|
||||
Desktop[桌面应用]
|
||||
end
|
||||
|
||||
subgraph "负载均衡层"
|
||||
Nginx[Nginx反向代理]
|
||||
end
|
||||
|
||||
subgraph "应用服务层"
|
||||
Gateway[API网关]
|
||||
|
||||
subgraph "微服务集群"
|
||||
Auth[认证服务]
|
||||
User[用户服务]
|
||||
Attendance[考勤服务]
|
||||
Approval[审批服务]
|
||||
Document[文档服务]
|
||||
Chat[聊天服务]
|
||||
Notification[通知服务]
|
||||
end
|
||||
end
|
||||
|
||||
subgraph "数据存储层"
|
||||
PostgreSQL[(PostgreSQL)]
|
||||
MongoDB[(MongoDB)]
|
||||
Redis[(Redis)]
|
||||
RabbitMQ[(RabbitMQ)]
|
||||
end
|
||||
|
||||
subgraph "监控层"
|
||||
Prometheus[Prometheus]
|
||||
Grafana[Grafana]
|
||||
ELK[ELK Stack]
|
||||
end
|
||||
|
||||
Web --> Nginx
|
||||
Mobile --> Nginx
|
||||
Desktop --> Nginx
|
||||
|
||||
Nginx --> Gateway
|
||||
|
||||
Gateway --> Auth
|
||||
Gateway --> User
|
||||
Gateway --> Attendance
|
||||
Gateway --> Approval
|
||||
Gateway --> Document
|
||||
Gateway --> Chat
|
||||
Gateway --> Notification
|
||||
|
||||
Auth --> PostgreSQL
|
||||
User --> PostgreSQL
|
||||
Attendance --> PostgreSQL
|
||||
Approval --> PostgreSQL
|
||||
Document --> MongoDB
|
||||
Chat --> Redis
|
||||
Chat --> RabbitMQ
|
||||
Notification --> RabbitMQ
|
||||
|
||||
Auth --> Redis
|
||||
User --> Redis
|
||||
|
||||
Prometheus --> Auth
|
||||
Prometheus --> User
|
||||
Prometheus --> Attendance
|
||||
Grafana --> Prometheus
|
||||
ELK --> Auth
|
||||
ELK --> User
|
||||
```
|
||||
|
||||
## 核心模块设计
|
||||
|
||||
### 1. 用户认证授权模块
|
||||
- **功能**: 用户注册、登录、JWT令牌管理、权限控制
|
||||
- **技术**: Spring Security + OAuth2 + JWT
|
||||
- **数据库表**: users, roles, permissions, user_roles
|
||||
|
||||
### 2. 考勤管理模块
|
||||
- **功能**: 打卡记录、请假申请、加班申请、考勤统计
|
||||
- **技术**: 地理围栏、人脸识别集成、考勤规则引擎
|
||||
- **数据库表**: attendance_records, leave_requests, overtime_requests
|
||||
|
||||
### 3. 审批流程模块
|
||||
- **功能**: 工作流定义、审批节点、流程实例、审批历史
|
||||
- **技术**: Activiti/Flowable工作流引擎
|
||||
- **数据库表**: workflows, workflow_instances, approval_nodes
|
||||
|
||||
### 4. 文档协作模块
|
||||
- **功能**: 文档创建、在线编辑、版本控制、权限管理
|
||||
- **技术**: MongoDB GridFS + WebSocket协同编辑
|
||||
- **数据库表**: documents, document_versions, collaborations
|
||||
|
||||
### 5. 即时通讯模块
|
||||
- **功能**: 一对一聊天、群组聊天、文件传输、消息状态
|
||||
- **技术**: WebSocket + STOMP + Redis Pub/Sub
|
||||
- **数据库表**: chat_rooms, messages, participants
|
||||
|
||||
## API设计原则
|
||||
1. RESTful API设计
|
||||
2. 版本控制 (v1, v2)
|
||||
3. 统一响应格式
|
||||
4. 全局异常处理
|
||||
5. 请求限流和防重放
|
||||
6. API接口文档自动生成
|
||||
|
||||
## 安全设计
|
||||
1. HTTPS强制使用
|
||||
2. JWT令牌认证
|
||||
3. RBAC权限模型
|
||||
4. 敏感数据加密存储
|
||||
5. SQL注入防护
|
||||
6. XSS/CSRF防护
|
||||
7. 请求频率限制
|
||||
|
||||
## 性能优化
|
||||
1. Redis缓存热点数据
|
||||
2. 数据库读写分离
|
||||
3. CDN静态资源加速
|
||||
4. 图片压缩和懒加载
|
||||
5. API响应压缩
|
||||
6. 数据库连接池优化
|
||||
|
||||
## 部署架构
|
||||
1. 开发环境: Docker Compose本地部署
|
||||
2. 测试环境: Kubernetes集群
|
||||
3. 生产环境: 多可用区高可用部署
|
||||
4. 数据库: 主从复制 + 自动备份
|
||||
5. 文件存储: 对象存储(S3兼容)
|
||||
|
||||
## 监控告警
|
||||
1. 应用性能监控(APM)
|
||||
2. 业务指标监控
|
||||
3. 日志集中收集
|
||||
4. 错误追踪和告警
|
||||
5. 健康检查和自愈
|
||||
|
||||
## 项目目录结构
|
||||
```
|
||||
smart-office-system/
|
||||
├── backend/ # 后端项目
|
||||
│ ├── smart-office-auth/ # 认证服务
|
||||
│ ├── smart-office-user/ # 用户服务
|
||||
│ ├── smart-office-attendance/# 考勤服务
|
||||
│ ├── smart-office-approval/ # 审批服务
|
||||
│ ├── smart-office-document/ # 文档服务
|
||||
│ ├── smart-office-chat/ # 聊天服务
|
||||
│ ├── smart-office-gateway/ # API网关
|
||||
│ └── smart-office-common/ # 公共模块
|
||||
├── frontend/ # 前端项目
|
||||
│ ├── src/
|
||||
│ │ ├── api/ # API接口
|
||||
│ │ ├── components/ # 公共组件
|
||||
│ │ ├── pages/ # 页面组件
|
||||
│ │ ├── store/ # 状态管理
|
||||
│ │ ├── utils/ # 工具函数
|
||||
│ │ └── styles/ # 样式文件
|
||||
│ ├── public/ # 静态资源
|
||||
│ └── config/ # 配置文件
|
||||
├── infrastructure/ # 基础设施
|
||||
│ ├── docker/ # Docker配置
|
||||
│ ├── k8s/ # Kubernetes配置
|
||||
│ ├── scripts/ # 部署脚本
|
||||
│ └── monitoring/ # 监控配置
|
||||
├── docs/ # 项目文档
|
||||
├── tests/ # 测试文件
|
||||
└── plans/ # 设计文档
|
||||
```
|
||||
|
||||
## 开发计划
|
||||
1. 第一阶段: 基础框架搭建 (2周)
|
||||
2. 第二阶段: 核心模块开发 (4周)
|
||||
3. 第三阶段: 前端界面开发 (3周)
|
||||
4. 第四阶段: 集成测试和优化 (2周)
|
||||
5. 第五阶段: 部署和监控 (1周)
|
||||
|
||||
## 风险评估和应对
|
||||
1. **技术风险**: 微服务复杂度高
|
||||
- 应对: 先采用单体架构,逐步拆分
|
||||
2. **性能风险**: 实时通信压力大
|
||||
- 应对: 使用Redis集群和消息队列削峰
|
||||
3. **安全风险**: 敏感数据泄露
|
||||
- 应对: 多层安全防护和审计日志
|
||||
4. **部署风险**: 多环境配置复杂
|
||||
- 应对: 使用配置中心和容器化部署
|
||||
|
||||
## 成功指标
|
||||
1. 系统可用性: 99.9%
|
||||
2. API响应时间: <200ms (P95)
|
||||
3. 并发用户数: 支持1000+同时在线
|
||||
4. 数据一致性: 事务成功率>99.99%
|
||||
5. 系统扩展性: 支持水平扩展
|
||||
|
||||
---
|
||||
*文档版本: v1.0*
|
||||
*最后更新: 2026-01-27*
|
||||
*作者: 架构设计团队*
|
||||
Reference in New Issue
Block a user