架构实战营 1 期 - 第四模块作业
架构实战营 1 期 - 第四模块作业
设计千万级学生管理系统的考试试卷存储方案
作业要求
基于模块 4 第 6 课 的估算结果 和 Redis sentinel 的初步方案设计, 完善考试试卷存储方案, 具体包括
完善 Redis 的数据结构设计, 明确具体使用哪种 Redis 数据结构
设计具体的读写流程, 可以文字描述也可以序列图描述, 序列图要有文字辅助说明
对照模块 4 第 6 课的性能估算结果, 计算 Redis sentinel 集群的服务器数量和性能
提示
性能可以有一定冗余
如果对 Redis sentinel 不熟悉, 可以参考官方文档 https://redis.io/topics/sentinel
Redis 资料
http://www.redis.com.cn/commands.html
Redis 数据结构设计
考题说明 (Redis Hash) question_[qqq]
question_title 题目标题
question_type 题目类型 (radio - 多选 checkbox - 多选 answer - 简答题)
option_1 选项 1
option_2 选项 2
option_n 选项 n 支持多个
考题答案 (Redis String) question_answer_[qqq]
试卷 (Redis List) test_paper_[ttt]
试卷答案 (Redis List) test_paper_answer_[ttt]
考生试卷 (Redis List) candidates_[ccc] 存入 test_paper_[ttt] 中所有元素
考生试卷结果 (Redis Hash) candidates_answer_[ccc] 存入学生每题结果, 支持单体保存
Redis 数据结构图
读写流程
Redis 试题 考试流程
性能估算
每个试卷大概 1k-2k 字符串, 预估最多 100K,
交卷时, 都是选择题大约 1k 简答题比较多, 也需要 100k 左右
流量 1000w * (1k - 100k) 大约 10G 到 1T 流量 存储也需要 10G - 1T
以服务器内存 128G 为例 大概需要 1 到 8 台, 考虑到冗余 16 台 128G 内存是比较保险的
主要看试题, 如果试题以选择题为主, 答案占据空间很少 16G 的服务器 2 台就足够了
版权声明: 本文为 InfoQ 作者【李东旭】的原创文章。
原文链接:【http://xie.infoq.cn/article/9d9ba90c25cf0311f705450f7】。文章转载请联系作者。
评论