架构实战营 模块四课后作业
作业
1. 设计千万级学生管理系统的考试试卷存储方案
【作业要求】
基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
1)完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构
2)设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)
2)对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能
用户行为建模和性能估算-考试试卷
假设学校的考试都安排在某一个月内,考试的时候请求试卷,提交答案,中间答题过程浏览器本地完成,由于考试集中在上午 4 小时和下午 4 小时,且请求试卷集中在考试开始的前 1 分钟,提交答案集中在考试结束前的 30 分钟,因此估算如下:
请求试卷:
1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒
提交试卷:
1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 30 分钟 = 1700/每秒
Redis sentinel 存储方案设计-考试试卷
【数据结构设计】
采用 redis 的 list 的数据结构
key:学校 ID + 年级 ID + 试卷 ID
value:每道题目
【读写分析】
1. 老师提交试卷,直接按照 key 保存
2. 学生查看试卷,按照 key 读取即可
Redis sentinel 读写流程-考试试卷
1、老师做好试卷后,提交试卷,按照 key 将试卷中的每一道题目存储在 redis 的 list 中;
2、学生进行考试时,选择试卷 key,读取题目 list,进行查看。
Redis sentinel 服务器数量和性能-考试试卷
1、redis 单机读写性能可达 10W/S,根据需求,读在 5W/S,写在 1700/S,根据 Redis sentinel 的高性能部署架构,一台主、两台从,三台 sentinel 即可。
2、部署架构图:
版权声明: 本文为 InfoQ 作者【iProcess】的原创文章。
原文链接:【http://xie.infoq.cn/article/3c416cb9b117506553efba073】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论