写点什么

架构实战训练营 - 模块四课后作业

用户头像
Johnny
关注
发布于: 2021 年 05 月 16 日

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

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

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

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

【提示】

性能可以有一定冗余

如果对 Redis sentinel 不熟悉,请参考官方文档: https://redis.io/topics/sentinel


一、业务性能要求指标


  • 试卷请求 QPS:5 万/s

  • 提交试卷 TPS:1700/s


二、使用的 redis 数据结构


redis 数据结构丰富。有 string、hash、list、set、sorted set 等。因为试卷是事先已经存到 redis 的,我可以理解成直接已经有一个序列化的试卷 value,所以这边使用 string 作为存试卷的内容的数据结构。

试卷由题目组成,试卷分不同课程的试卷(语文、数学、英语等),key 的设计上可以是学校 id+试卷 id,value 就是整张试卷的内容(序列化的)。


三、设计具体的读写流程

1、读的过程

当用户请求试卷的时候,直接通过 key 取获取试卷的内容(序列化的存在 redis),把内容反序列化出来,返给前端渲染即可。

2、写的过程

当试卷提交的时候,把试卷内容和对应答题答案,写到 mysql 集群。最后试卷批改后结果存到 hbase。

3、 Redis sentinel 集群的服务器数量和性能

  • Redis sentinel 3 台

  • Redis 主从 3 台

Redis 的 单机 QPS/TPS 5~10 万 , 能满足试卷请求 QPS 的要求;

主从 3 台,适当的冗余性能;

Redis sentinel 3 台保证哨兵自身高可用。

发布于: 2021 年 05 月 16 日阅读数: 22
用户头像

Johnny

关注

种一棵树最好的时间是十年前,其次是现在。 2018.05.05 加入

关注微服务、架构等

评论

发布
暂无评论
架构实战训练营 - 模块四课后作业