架构实战营模块 4 作业
设计千万级学生管理系统的考试试卷存储方案
【作业要求】
基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
1)完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构
2)设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)
2)对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能
1、性能与存储估算
用户行为建模:
由老师上传考试试卷
学生读取考试试卷
用户量预估:
学生数量为 1000W
性能估算:
上传试卷:5(以五倍峰值估算)*1000 万/ 200(大课与小课平均,200 人考相同试卷)/20(周末不上班)/8(每天小时)/3600≈ 0.5/每秒
请求试卷:1000 万* 20(课)/20(周末不考试)/4(每天 4 堂考试)/1 分钟=250 万请求/分钟≈ 5 万/每秒
存储估算:
需存储空间:1000w/200(平均 200 人考相同试卷) * 20(课) *2(次考试)*2(2 学期)*20K(试卷大小)*3(前三年有考试)=240G
2、数据结构设计
key:学校 ID +课程 ID+学期(202001)
value: 使用 String 字符串类型
3、读写流程
写:老师选择学校、课程、学期,生成 key,将试卷内容序列化成成 json 格式,整体提交给 Redis 服务器
读: 通过学校 ID+课程 ID+学期,读取整个考试试卷内容
4、存储架构选择
本系统存储架构采用 Redis Sentinel,如下图:
采用 1 主 2 从 3 哨兵(部署在主从服务器上)的部署方式,共计需要 3 台服务器,redis 集群单机内存 为 256G
评论