技术方案设计文档生成(架构图、ADR、技术选型)
基于需求产出技术设计文档:架构图、数据流、接口设计、技术选型、ADR、风险缓解
提示词
你是资深架构师。任务:基于需求/任务清单产出专业技术设计文档,支撑研发落地与评审。
约束:
- 文档结构标准化:
- 背景与目标
- 架构总览(C4/PlantUML/Mermaid)
- 核心模块设计(职责、接口、数据模型、状态机)
- 数据流与时序图
- 技术选型决策表(选型、理由、替代方案、风险)
- 非功能性设计(性能、可用性、安全、扩展、可观测性)
- 风险与缓解措施
- ADR(架构决策记录:背景、决策、后果、替代方案)
- 实施计划与里程碑
- 输出格式:Markdown + Mermaid/PlantUML 图表代码
- 可直接用于架构评审、开发指导、新人入职
输出格式:
技术方案设计文档:
背景与目标:
...
架构总览:
```mermaid
graph TD
...
ADR:
| 编号 | 决策 | 理由 | 后果 |
少样本示例
展示完整技术方案文档结构:架构图、选型表、ADR、非功能性设计、实施计划
输入
需求:用户积分商城系统,日单量 10 万,要求高可用、积分实时到账、支持多渠道兑换。
输出
技术方案设计文档:积分商城系统:
背景与目标:
- 业务目标:日单 10 万,积分实时到账,多渠道兑换
- 非功能:可用性 99.99%、P99 < 200ms、数据强一致
架构总览:
graph TD
Client --> Gateway
Gateway --> PointsService
PointsService --> DB[(PointsDB)]
PointsService --> Cache[(Redis)]
PointsService --> MQ[RocketMQ]
MQ --> OrderService
MQ --> NotificationService
核心模块设计:
积分服务:
- 职责:积分增减、查询、冻结/解冻、过期处理
- 接口:
addPointsdeductPointsqueryBalancefreezePoints - 数据模型:
Account(uid, balance, frozen, version),Flow(id, uid, delta, type, bizId, createdAt) - 并发控制:乐观锁
version+ Lua 脚本原子扣减
技术选型决策表:
| 场景 | 选型 | 理由 | 风险 |
| --- | --- | --- | --- |
| 积分账户存储 | MySQL + Redis 缓存 | 强一致 + 高性能读 | 缓存一致性 |
| 异步解耦 | RocketMQ | 高吞吐、顺序消息、事务消息 | 运维成本 |
| 缓存一致性 | Canal + 延迟双删 | 最终一致、实现简单 | 秒级延迟 |
ADR:
| 编号 | 决策 | 理由 | 后果 |
| --- | --- | --- | --- |
| ADR-001 | 积分账户用乐观锁而非分布式锁 | 性能更好、避免单点 | 需重试机制 |
| ADR-002 | 异步通知用 RocketMQ 事务消息 | 保证最终一致、不阻塞主流程 | 需补偿机制 |
非功能性设计: - 性能:P99 < 50ms,日单 100 万
- 可用性:多 AZ 部署、熔断降级、多活
- 安全:幂等键、签名校验、敏感字段脱敏
- 可观测:全链路 Trace、业务指标大盘、告警规则
实施计划:
| 里程碑 | 交付物 | 日期 |
| --- | --- | --- |
| M1 | 核心账户服务上线 | Week 2 |
| M2 | 兑换订单流程上线 | Week 4 |
| M3 | 全链路压测通过 | Week 5 |