架构实战营 - 模块 4
背景
假设学校的考试都安排在某一个月内,考试的时候请求试卷,提交答案,中间答题过程浏览器本地完成,由于考试集中在上午 4 小时和下午 4 小时,
且请求试卷集中在考试开始的前 1 分钟,提交答案集中在考试结束前的 30 分钟,因此估算如下:
• 请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒
Redis 数据结构使用 Sets
数据结构设计
key: 学校 ID + 课程 ID
value: 试卷(JSON 序列化)
读写分析
教师登录后,选择课程,添加试卷。试卷存储使用教师编号前缀里的学校信息(学校 ID) + 选择的课程信息(课程 ID)作为 key 存储
学生登录后,选择考试课程,进入考试界面,根据学号前缀里的学校信息(学校 ID) + 选择的课程信息(课程 ID)获取试卷内容
Redis sentinel 集群服务器数量估算(需要 3 台服务器)
理由:
Redis 单机参考性能支持 5w-10w QPS(理论上单台服务可以支撑)
Redis sentinel 模式至少需要三台服务器支持
评论