写点什么

模块四作业

作者:听着有点冷
  • 2022 年 1 月 09 日
  • 本文字数:593 字

    阅读完需:约 2 分钟

模块四作业

一、性能估算


【估算】

假设有 1000 个学校,每个学校每学期每次有 100 门课程需要考试;

假设每次试卷大小为 10kb;

由此可估算出:

试卷数量:1000(学校)* 100(课)= 10 万;

试卷所需存储空间:10 万 * 10KB ≈ 1GB。

二、数据结构

Key: 学校 ID + 科目 ID + 考试 ID

Value:试卷内容 Json

【读写分析】

读写流程

试卷平时存储在 mysql 或者 hdfs 等文件式存储中,在考试开放之前通过 key 加载到 redis 集群中,redis 集群完成主从复制。

考试开始时,客户端或浏览器调用服务端接口,通过计算节以及对应的 key 取出对应的考试 Json 串解析,并加载到前端。

三、读写流程

【写】(老师)

请求试卷:1000 万* 20(课)/ 20(周末不考试)/ 4(每天 4 堂考试)/ 1 分钟= 250 万请求/分钟≈ 5 万/每秒。

Redis 单机已经能满足 5 万每秒的简单查询,哨兵模式至少三个哨兵实例,所以采用一主两从,由于写入不频繁,所以不用做读写分离,预计整体集群可支持 15 万 QPS。

【读】(学生)

存储要求:500(学校数)*20(20 门课)*2 (考试次数)*2(学期) *20KB ≈ 800M 假设每 5 年更新一轮试卷,总存储量在 4000M = 4G 内存 留 50%富余量,则集群为 8G 内存机器三台搭建 Redis sentinel 集群即可满足存储要求。

四、Redis sentinel 服务器数量及性能

redis 单机读写性能可达 10W/S,根据需求,读在 5W/S,写在 1700/S,根据 Redis sentinel 的高性能部署架构,一台主、两台从,三台 sentinel 即可。


用户头像

还未添加个人签名 2021.01.07 加入

还未添加个人简介

评论

发布
暂无评论
模块四作业