架构实战营 - 模块一作业
一、微信业务架构
二、学生管理系统
1. 需求分析
可通过公网域名访问
支持管理 1000 个学生
3 人都会 java,一个 php 高手
大家经济条件一般
2. 方案设计
2.1 容量评估:
总共 1000 名学生,按每名学生每年修 10 门课,每门课每年 4 次考试成绩估算,一年的数据量在 4W 左右,并且每年毕业的学生数据可以进行归档,热数据基本维持在这个量级。由于数据量小,直接使用 mysql 存储,无需考虑分库分表。(简单原则、合适原则)
系正常情况下,统峰值 qps 不会超过 1000。tomcat 默认线程数 200,假设一次请求耗时 50ms,那么单机可以承载的 qps 为 200 * (1000/50) = 4000,考虑多线程切换成本,实际可能不足 4000,即便如此,单机也完全能够满足要求。(简单原则、合适原则)
2.2 技术栈选型
对于这种微型应用来说,php 开发起来更加简单快速。但由于 php 只有一个人会,而 3 位同学都会 java,所以还是选择 java 技术栈。(合适原则)
2.3 架构方案
备选方案一:
备选方案二:
方案比较:
方案一和方案二满足基本功能需求,方案二具备更高的可用性,但成本也更高(2 倍+)。由于 3 人经济条件一般,所以选择方案一,数据备份这块,在系统空闲时间定期人工备份即可。
评论