写点什么

架构实战营 - 模块四 - 作业

作者:小畅
  • 2024-04-29
    北京
  • 本文字数:735 字

    阅读完需:约 2 分钟

1. 业务背景

暂无

2. 约束和限制

暂无

3. 总体架构

3.1 架构分析

暂无

3.2 总体架构


4. 详细设计

4.1 存储设计

4.1.1.估算性能需求

(1)用户量 1000 万,

(2)登录:3000/s,注册: 3/s

在校学生数据存储:基本数据 2G,图片数据=10T

离校学生数据存储:基本数据每年增长 500M,图片数据每年增长 2.5T

考试:

在校学生考试结果存储:2.4T

离校学生考试结果存储:每年增长 0.6T

(3)试卷请求 QPS:5 万/s

(4)提交试卷 TPS:1700/s

4.1.2.选择存储系统

试卷的存储和范围:采用 Redis sentinel

学生的基本信息和老师课程的考试结果:采用关系型数据库 MySQL

学生的考试结果和登录信息:采用 HBASE

4.1.3.设计存储方案

4.1.3.1. Redis 的存储方案设计

4.1.3.1.1.Redis 数据结构设计

试卷题目的存储采用 String 的数据结构进行存储

  • Key:为本学期课程 ID 和考试日期,例如:43254435_20240427,

  • Value:是考试试卷内容。

4.1.3.1.2.Redis 读写流程

a.新增试卷

1、老师给某个学科的某次考试时间设计试卷;

2、保存到 2 个 redis 集群中,分别以 key 为“课程 ID_考试日期”,value 为试卷的对象 

b.学生读取试卷内容

1、考试开始时,考生进入某个课程的考试点击开始,获取课程 ID 和考试日期,请求后台数据;

2、后台接口根据请求 key,查询 key=“课程 ID_考试日期”的数据,返回查询结果;

3、考生的浏览器端进行试卷内容的展示;

4、开始答题;

c.考试完成,保存试卷

4.1.3.1.3.Redis 性能估算

服务器数量最少 6 台,部署多台 redis 节点,其中只有一台节点是主节点(master),其他的节点都是从节点(slave);

一般情况下,为了保证高可用,sentinel 也会进行集群部署,防止单节点 sentinel 挂掉。当 sentinel 集群部署时,各 sentinel 除了监控 redis 实例外,还会彼此进行监控;


4.1 核心功能

暂无

4.2 关键设计

暂无

4.3 设计规范

暂无

5. 质量设计

暂无

6. 演进规划

暂无

用户头像

小畅

关注

还未添加个人签名 2024-03-09 加入

还未添加个人简介

评论

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