写点什么

架构实战营模块四作业

用户头像
竹林七贤
关注
发布于: 2021 年 05 月 17 日

【作业要求】

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

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

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

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


一、考试试卷存储量估算

假设 1000 万学生;每年 2 次考试,每次 20 们课,则一年 40 次考试;则一共有 1000 万**40=4000 万试卷。

假设每张试卷 44 道题,选择题 20 道,判断题 20 道,每道 300 字节;大题 4 道,每道 5000 字节。则每张试卷 32KB.

所以,所有试卷总存储量为:4000 万*32KB=1.2T


假设所有考试都集中在学期结束的一个月内(周末不考试),大部分人在网上用浏览器进行答题,在考试开始的 1 分钟内发出读请求,考试结束前半小时发出写请求。考试集中在白天 8 小时内。

则,查看试卷的读请求 TPS:1000 万人*20 门课/22 天/8 小时/1 分钟=1.9 万/秒

提交试卷的写请求 TPS:1000 万人*20 门课/22 天/8 小时/30 分钟=630/秒


使用 redis sentinel 可以支持该需求


二、试卷使用的 Redis 数据结构

由于每个试卷,都有对应的,学校、学院、专业、姓名等信息,所以使用 hash table 结构。

key :试卷 ID

value:选择 hash table,将学校,学院、专业、姓名、答案等信息放入 table 中。


三、Redis 读写流程


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

Redis 单机已经可以支持 5~10 万 TPS,可以采用 3 台 Redis 服务器,一主两从,满足高可用。

同时,采用 3 台 Redis sentinel ,监控 Redis 集群并确保主从及时切换。


用户头像

竹林七贤

关注

还未添加个人签名 2020.08.13 加入

还未添加个人简介

评论

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