写点什么

架构实战营模块 4 作业

发布于: 2021 年 05 月 23 日

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

【作业要求】

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

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

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

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

性能估算

在这里用户量预估为 1000 万

考试试卷存储方案的 TPS/QPS 估算如下:

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

提交试卷: 1000 万* 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 30 分钟= 1700/每秒

存储架构分析


数据结构设计:

Key:学校编号+课程编号+考试编号

Value:采用 Json 字符串

读写分析

  1. 老师选择学校、课程、考试,生成 key

  2. 按题号录入考试内容

  3. 按题号排序存储考试问题内容,每个题目内容通过序列化为 JSON 格式

  4. 通过学校编号+课程编号+考试编号,读取整个考试试卷内容


服务器数量分析

由于读性能需要 5 万/秒,而单台 Redis 性能为 5-10 万,因此至少需要 2 台 Redis,为保障可靠性,因此需要 3 台 Redis 实现 1 主 2 从模式。同时引入 sentinal 需要 3 台 Redis。但是可以把 sentinel 和 redis 部署在同一台机器上,因此最后需要 3 台服务器。

用户头像

还未添加个人签名 2019.01.21 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块 4 作业