写点什么

架构实战营模块 4 作业

用户头像
阿体
关注
发布于: 2021 年 05 月 25 日

设计千万级学生管理系统的考试试卷存储方案

【作业要求】

基于模块 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

用户头像

阿体

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块4作业