写点什么

架构实战营 - 模块四作业

作者:🐢先生
  • 2023-03-05
    浙江
  • 本文字数:514 字

    阅读完需:约 2 分钟

一、存储性能需求汇总

  • 试卷请求 QPS:5W/s(从课程中来,这里不重复分析)

  • 试卷存储:3000(高校) * 100(专业) * 4(年级) * 2(学期) * 2(A/B 卷) * 5KB(单张试卷大小) = 23G

  • 单子试卷大小计算规则:20(判断题) * 50 + 20(选择题) * 100 + 4(大题) * 500 = 4000 * 2 = 8000 字(5KB)


二、存储方案设计

基于前面的性能需求分析,我们知道单机能存储所有数据,并且能满足读写性能;同时考虑到试卷请求的 QPS 有 5W/s,我们的存储架构最好是能做到高可用和高性能,这里我们选择 Redis Sentinel。

写入流程:

  • 试卷的维护是由教师来做的,原始信息会存储在关系型数据库(这里我们用 MySQL)中,试卷经过审核,会写入到 Redis。

  • 试卷的读写不需要特别的逻辑,这里我们使用数据结构 String 即可,简单。

  • 写入 redis 的试卷 key 定义:学校 ID:年级 ID:学期 ID:课程 ID:试卷 ID。

  • 写入 redis 的试卷 value(试卷内容)定义:使用 JSON 格式的字符串。

读取流程:

  • 学生考试的时候,会根据每个学生的学校、年级、学期、课程信息组装 key,去 reids 获取试卷信息。


三、集群的服务器数量以及性能

服务器数量:3 台(哨兵集群高可用) + 2 台(主从)

服务器性能:3 台哨兵用的服务器选择 8G 或者 16G;存储试卷的服务器选择 32G 或者 64G。具体选择哪一个配置,还需要结合成本来做取舍。


发布于: 刚刚阅读数: 3
用户头像

🐢先生

关注

还未添加个人签名 2018-01-19 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块四作业_架构实战营_🐢先生_InfoQ写作社区