XXX 项目
方案(架构)设计评审V1.0
修订记录
| 日期 | 修订版本 | 修改描述 | 作者 |
|---|---|---|---|
| xxxx-xx-xx | V1.0 | 新建 | Xxx |
一,前言
1.1 需求背景(需求分析)
xxx
1.2 名词解释
| 术语 | 英文全名 | 中文解释 |
|---|---|---|
二,系统目标
系统设计的预期目标,比如支持的QPS, 日活,机房的多活部署目标等
三,系统概述
3.1 系统用例
3.1.1 【示例】
3.2 系统流程图
3.2.1 整体业务流程图
Xxx
3.2.2 关键模块流程图
xxx
3.3 系统架构
3.3.1 系统整体架构设计
XXXXXXX
3.4 系统模块(服务)划分
按业务形态对需求进行拆分,主要涉及到哪些功能模块,按服务的维度来拆分主要涉及哪些服务,每个服务负责哪些功能的划分。
3.5 涉及的外部系统
涉及的外部依赖系统
3.6 方案选型决策
备选方案1
备选方案2
备选方案3
可以将系统设计的其他方案,待决策一些中间件的选型等等
四,关键任务描述
4.1 通过 业务流程图、时序图等,描述方案中 关键的核心任务的具体细节业务流程,数据流向等
五,存储设计
- 如果是关系型数据库(Mysql),需要描述ER图,各个表的表结构字段以及多活等;
- 如果涉及到 Redis 输出主要的key的结构,key的预估数量,过期时间/过期策略,key/value缓存的大小等等。是否需要多机房,多机房同步策略)
- 如果涉及 ES 输出对应的 索引结构的mapping,分片shard和副本的设置,容量的预估等等,是否需要多机房,多机房同步策略
- 如果涉及 MongoDB 的文档结构说明,是否需要多机房,多机房同步策略
- 其他存储等
5.1 数据库E-R关系
xxx
5.2 表字段设计
5.2.1 示例Demo表(t_demo(表名))
| 列名 | 类型 | 长度 | 说明 | 主键&索引 | 允许为空 | 默认值 |
|---|---|---|---|---|---|---|
| active_id | unsigned int | 活动ID | PK | N | 0 | |
| active_name | varchar | 120 | 活动名称 | N | ‘’ | |
| active_desc | varchar | 256 | 活动描述 | N | ‘’ | |
| demo_url | varchar | 512 | 活动示例 | N | ‘’ | |
| begin_time | unsigned int | 活动开始时间 | N | 0 | ||
| ... | ||||||
| operator | varchar | 64 | 操作者 | N | ‘’ | |
| insert_time | unsigned int | 插入时间 | N | 0 | ||
| update_time | unsigned int | 最后修改时间 | N | 0 |
5.3 多活设计
是否需要多活,如何实现多活
六,高可用设计
6.1 数据一致性
xxx
6.2 多活架构设计
xxx
6.3 关键路径的熔断降级
xxx
6.4 扩展性设计
Xxx
七,容量预估
1,需要预估 该方案上线,预计需要新增多少规格的实例节点
2,分布式缓存redis的预计容量占用
3,mysql、mongoDB ,ES 存储的数据量级,如果是 新增的集群,预计什么规格等
4,其他相关的容量预估
八,监控告警
8.1 监控项
| 业务模块(PSA) | 监控内容 | 监控平台 | 是否告警 | 备注 |
|---|---|---|---|---|
| xxxx | 日志监控关键字:xxxx | 云平台 | 是 | |
| xxxx | xxx接口监控:请求量,失败率,超时率,耗时... | 自定义监控 | 是 | |
九,风险点预估
说明整个架构落地的主要风险点是什么,依赖方是谁,具体根据的责任人是谁,以及风险如果发生的备选方案是什么
十,接口设计
十一,任务分解及依赖
| 功能模块 | 功能点 | 责任人 | 开发时间/人天 | 备注 | |
|---|---|---|---|---|---|
| XXXX | Xxx | ||||
| xxx | |||||
十二,附录
xxx
十三,评审记录
| 评审时间 | 主要参评人 | 评审建议 |
|---|---|---|