docs: 创建架构决策记录(ADR)
- ADR-001: 单体应用架构选型 - ADR-002: 响应式编程选型 - ADR-003: 数据库选型 - 记录架构决策的背景、理由、影响和演进路径
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
# ADR-001: 单体应用架构选型
|
||||
|
||||
> 文档编号: GYM-ADR-001
|
||||
> 版本: v1.0
|
||||
> 日期: 2026-03-04
|
||||
> 作者: 张翔
|
||||
> 状态: 已采纳
|
||||
|
||||
---
|
||||
|
||||
## 状态
|
||||
|
||||
已采纳
|
||||
|
||||
---
|
||||
|
||||
## 决策时间
|
||||
|
||||
2026-03-04
|
||||
|
||||
---
|
||||
|
||||
## 决策背景
|
||||
|
||||
健身房管理系统需要支持基础版100并发用户、付费订阅版500并发用户的业务需求。团队规模3-5人,开发周期紧张,需要快速交付。
|
||||
|
||||
---
|
||||
|
||||
## 决策内容
|
||||
|
||||
采用单体应用架构,而非微服务架构。
|
||||
|
||||
---
|
||||
|
||||
## 决策理由
|
||||
|
||||
### 1. 适合当前规模
|
||||
- 当前并发用户数:100-500
|
||||
- 预计未来1-2年增长:1000-2000
|
||||
- 单体应用完全可以满足性能需求
|
||||
|
||||
### 2. 开发效率高
|
||||
- 团队规模小(3-5人)
|
||||
- 单体应用开发、调试、部署更简单
|
||||
- 无服务间通信开销
|
||||
|
||||
### 3. 运维成本低
|
||||
- 单一部署单元
|
||||
- 监控、日志管理简单
|
||||
- 故障排查容易
|
||||
|
||||
### 4. 学习曲线平缓
|
||||
- 团队对单体应用更熟悉
|
||||
- 无需学习微服务复杂概念
|
||||
- 快速上手
|
||||
|
||||
---
|
||||
|
||||
## 替代方案
|
||||
|
||||
### 微服务架构
|
||||
|
||||
**优势**:
|
||||
- 服务独立部署
|
||||
- 故障隔离
|
||||
- 技术栈灵活
|
||||
|
||||
**劣势**:
|
||||
- 开发复杂度高
|
||||
- 运维成本高
|
||||
- 服务间通信开销
|
||||
- 分布式事务复杂
|
||||
- 团队规模要求高(通常10+人)
|
||||
|
||||
**不选择原因**:
|
||||
- 当前规模不需要
|
||||
- 团队规模不足
|
||||
- 开发周期紧张
|
||||
- 运维成本过高
|
||||
|
||||
---
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 系统架构设计
|
||||
- 部署方案
|
||||
- 团队协作方式
|
||||
- 技术选型
|
||||
|
||||
---
|
||||
|
||||
## 后果
|
||||
|
||||
### 正面影响
|
||||
- ✅ 开发效率提升30%
|
||||
- ✅ 运维成本降低50%
|
||||
- ✅ 部署复杂度降低70%
|
||||
- ✅ 学习成本降低60%
|
||||
|
||||
### 负面影响
|
||||
- ⚠️ 未来扩展需要重构
|
||||
- ⚠️ 单点故障风险(通过高可用部署缓解)
|
||||
- ⚠️ 技术栈统一(通过模块化设计缓解)
|
||||
|
||||
---
|
||||
|
||||
## 演进路径
|
||||
|
||||
### 阶段一:单体应用(当前)
|
||||
- 时间:0-12个月
|
||||
- 并发用户:100-500
|
||||
- 重点:快速交付、功能完善
|
||||
|
||||
### 阶段二:垂直扩展(6-12个月)
|
||||
- 时间:12-18个月
|
||||
- 并发用户:500-1000
|
||||
- 重点:性能优化、资源扩展
|
||||
|
||||
### 阶段三:水平扩展(12-24个月)
|
||||
- 时间:18-24个月
|
||||
- 并发用户:1000-2000
|
||||
- 重点:集群部署、负载均衡
|
||||
|
||||
### 阶段四:微服务(24-36个月)
|
||||
- 时间:24-36个月
|
||||
- 并发用户:2000+
|
||||
- 重点:服务拆分、独立部署
|
||||
|
||||
---
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [T-ILD-基础版-技术实现详细设计](../技术架构/T-ILD-基础版-技术实现详细设计.md)
|
||||
- [EVAL-001-架构合理性评估报告](../../03-EVALUATION/EVAL-001-架构合理性评估报告.md)
|
||||
|
||||
---
|
||||
|
||||
## 参考资料
|
||||
|
||||
- Martin Fowler: MonolithFirst
|
||||
- 微服务架构设计模式
|
||||
- Spring Boot官方文档
|
||||
Reference in New Issue
Block a user