模块四作业
1. 设计千万级学生管理系统的考试试卷存储方案
【作业要求】
基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构
Key:学校 ID + 学号 ID + 考试
Value:String(Json string 内以不同 key 存储 Result 和 Score)
设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)
读流程:
客户端发起 rest API 读取试卷请求,传学校 id,学生 id , 考试号码给试卷读服务(请求经过负载均衡器/gateway 调用某个读服务)
试卷读服务根据学校 id,学生 id , 考试号码,生成 key, 去 Redis 夺取相应内容,因为是读请求,某个 Redis salve 会提供服务,返回结果。试卷读服务会把得到的内容返回给客户端
写流程
客户端以 JSON 格式通过 rest API post 结果给试卷服务器,试卷写服务(请求经过负载均衡器/gateway 调用某个写服务)
试卷写服务拿到试卷内容,根据学校 id,学生 id , 考试号码,生成 key, 向 Redis 主服务写试卷内容
对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能
请求试卷: 5 万/每秒
提交试卷 1700/每秒
Redis 单机 TPS 5~10 万, 所以 Redis sentinel 集群一台 master 和 一台 slave 就够了
评论