写点什么

架构师实战营 - 模块 4- 设计千万级学生管理系统的考试试卷存储方案

用户头像
吴建中
关注
发布于: 2021 年 05 月 29 日
架构师实战营-模块4-设计千万级学生管理系统的考试试卷存储方案

作业要求:

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

【作业要求】

基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:

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

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

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

【提示】

1. 性能可以有一定冗余

2. 如果对 Redis sentinel 不熟悉,请参考官方文档:https://redis.io/topics/sentinel


作答:

分析:经估算考试试卷的读取 QPS=5 万/S,由于 Redis 的单机并发为 10 万/S,所以可以不进行分区,但是需要通过 Redis sentinel 进行高可用设计,由 sentinel 自动进行主从切换。


1.试卷存储在 Redis 数据结构,Sorted Set(有序集合) ,排序号为题号(Num)。  Key =学校 ID+考试 ID  , Value=( 题号(Num)、   题目内容)


2.试卷读取后缓存在客户端,但是答题结果每次保存时,要存储到服务端,避免丢失,采用 Hbase 存储。

  key:学校 ID+学生 ID+考试 ID ,

  Column Family 列蔟:test ,

  Column 列:题号(Num),答题内容(result),得分(Score)

  读流程:从 redis 中根据 key(学校 ID+考试 ID )读取试卷,并加载到客户端。

  写流程:学生作答,每做完一道题,需要结果保存到 Hbase 服务器。


3.经估算考试试卷的读取 QPS=5 万/S,由于 Redis 的单机并发为 10 万/S,所以可以不进行分区,但是需要通过 Redis sentinel 进行高可用设计,由 sentinel 自动进行主从切换。3 台 Redis sentinel +2 台 Redis(主从)

用户头像

吴建中

关注

还未添加个人签名 2018.04.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师实战营-模块4-设计千万级学生管理系统的考试试卷存储方案