写点什么

模块四

作者:马志峰
  • 2022 年 1 月 09 日
  • 本文字数:745 字

    阅读完需:约 2 分钟

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

【作业要求】 基于模块 4 第 6 课的估算结果和 Redissentinel 的初步方案设计,完善考试试卷存储方案,具体包括:

• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。

• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。

• 对照模块 4 第 6 课的性能估算结果,计算 Redissentinel 集群的服务器数量和性能


已有的性能估算:

1、每门考试的题目 20 判断题、20 选择题、4 道大题(答案 200 字以 内);

2、请求试卷:1000 万* 20(课)/20(周末不考试)/4(每天 4 堂考试)/1 分钟=250 万请求/分钟≈ 5 万/每秒。


性能估算:

每个专业每年级有 10 人到 500 人,平均 150 人,试卷 1000 万*20/150=140 万份;


读取性能:

每张试卷,约 20K 文字,20M 图片:

【20*100 字+20*(100 字+4.5 选项*22 字)+4*150 字=4600 字=5000 字=15K;

图片大约 20 张,按 20M 算;图片链接:20*200 字符=4K】

文字:140 万*20K=1400*20M=28G,(压缩估计可以减少一半,留做冗余)图片:28T

试卷本身用单机可以存储,用主备复制架构

图片用 HBase 集群的分片架构

写入性能:

试卷一般是老师提前录入的,不需要考虑写入的高性能


图片设计:

【数据结构设计】 Key:学校 ID+专业年级 ID+试卷编号 ID+pic。

ColumnFamily:test。

Column:pic。

【读写分析】 1. 下拉试卷,直接按照 key 读取即可;应用层进行缓存。


试卷设计:

【数据结构设计】 Key:学校 ID+专业年级 ID+试卷编号 ID。

ColumnFamily:test。

【读写分析】 1. 下拉试卷,直接按照 key 读取即可;应用层进行缓存。


最大的 QPS 为请求试卷,5 万/s,1 台 redis 就可以支撑

redis sentinel 集群至少 3 个 sentinel 节点,3 个 redis 数据节点,因此 redis 服务器的数量至少 6 台

redis3 个数据节点,1 主 2 从读写分离,并发读的能力约 15 万左右,达到性能要求。

用户头像

马志峰

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

发布
暂无评论
模块四