【架构师训练营】模块四作业
【作业要求】
基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
1)完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构
2)设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)
2)对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能
一、性能估算
【已有信息】
每门考试 20 判断题、20 选择题、4 道大题;
请求量: 试卷请求 QPS:5 万/s,提交试卷 QPS:1700/s;
【估算】
假设有 1000 个学校,每个学校每学期每次有 100 门课程需要考试;
假设每次试卷大小为 10kb;
由此可估算出:
试卷数量:1000(学校)* 100(课)= 10 万;
试卷所需存储空间:10 万 * 10KB ≈ 1GB。
二、数据结构
采用 redis 的 list 的数据结构
key:学校 ID + 年级 ID + 试卷 ID
value:一道道题目
【读写分析】
1. 老师提交试卷,直接按照 key 保存
2. 学生查看试卷,按照 key 读取即可
三、读写流程
【写】(老师)
老师做好试卷后,提交试卷,按照 key 将试卷中的每一道题目存储在 redis 的 list 中;
【读】(学生)
学生进行考试时,选择试卷 key,读取题目 list,进行查看。
四、Redis sentinel 服务器数量及性能
redis 单机读写性能可达 10W/S,根据需求,读在 5W/S,写在 1700/S,根据 Redis sentinel 的高性能部署架构,一台主、两台从,三台 sentinel 即可。
版权声明: 本文为 InfoQ 作者【樰巳-堕~Horry】的原创文章。
原文链接:【http://xie.infoq.cn/article/cbf70f41c904638096bfae9be】。文章转载请联系作者。
评论