写点什么

[架构实战营] 模块四作业

用户头像
xyu
关注
发布于: 5 小时前

学生管理系统的考试试卷存储方案分析

根据资料描述:中国大学共有 13 个学科,61 个大学专业类,506 个大学专业;

假设每个专业平均考核 20 门课,且基本提前一个月出好题并上传系统,我们计算其 TPS:506*20/30 天 ≈0.012TPS, 压力不大;

存储要求:, 其中假设每门课程考试内容平均占据 100kb 的存储空间,则缓存设备选型可以考虑 4G 及以上内存设备,考虑到经济性,选择 4G 内存即可。

完善 Redis 的数据结构设计

Key: 学校 ID + 专业 ID + 课程 ID + 学年

Value: 考卷内容经 json 格式化后使用 string 存储;

设计具体的读写流程

学生请求试卷:学生登录考试系统之后,将自动获取到学校 ID、专业 ID 及当前学年信息,用户只要选择好课程 ID, 几个获取到对应的考试试卷内容;

老师设置及设置考试试卷:老师登录到考试系统之后,获取到设置考卷的权限,老师在编辑器中编辑完试卷之后即可上传试卷内容;当然在上传之前需要老师选择好学校 ID、专业 ID、课程 ID 及学年信息;在上传过程中会再次校验老师权限,确保其有对该课程试卷的设置权限;

计算 Redis sentinel 集群的服务器数量和性能

根据之前估算,考试请求数量为:50000 QPS; 每台 Redis 服务器的性能在 5 万 ~ 10 万之间;

为了确保试卷请求服务的可用性,使用 redis 哨兵模式进行部署;

使用 sentinel 和 Redis 一同部署的主从自动切换架构,部署设备在三台以上,由于数据量不大,三台即可,如此可以提供 15 万 ~ 30 万 QPS 的读取性能。


发布于: 5 小时前阅读数: 5
用户头像

xyu

关注

还未添加个人签名 2018.03.06 加入

还未添加个人简介

评论

发布
暂无评论
[架构实战营]模块四作业