写点什么

[架构实战营] 模块 4 作业

作者:Vincent
  • 2021 年 12 月 26 日
  • 本文字数:554 字

    阅读完需:约 2 分钟

考试服务存储设计(一)

  • 性能分析

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

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

  • 试卷请求 QPS:5 万/s

  • 提交试卷 TPS:1700/s

  • 详细设计

  • KEY= 学校 ID+课程 ID+考试 ID

  • 数据结构= String(JSON 格式存储试卷)

  • 请求过程

  1. 客户端请求试卷

  2. 服务端根据学生个人信息,获取学校 ID+课程 ID+考试 ID 生成 KEY。

  3. 请求 Redis 服务器,获取对应的试卷数据。

  4. 返回客户端 JSON 格式的试卷

  5. 客户端根据 JSON 格式生成试卷

  • 服务器资源

  • Redis 基于内存,sentinel 是主从复制,所以根据性能分析,内存最少需要 4T(三年)

  • Redis 服务器 CPU 核数 32 核

  • 32 核 4T 内存*3*1(一个地区)


考试服务存储设计(二)

  • 性能分析

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

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

  • 试卷请求 QPS:5 万/s

  • 提交试卷 TPS:1700/s

  • 详细设计

  • KEY= 学校 ID+课程 ID+考试 ID

  • 数据结构= String(JSON 格式存储试卷)

  • 分区部署(根据地域分为 华北、华南、西南、华中)

  • 请求过程

  1. 客户端请求试卷

  2. 负载均衡根据请求 Header 地域信息,选择对应区域的服务器

  3. 服务端根据学生个人信息,获取学校 ID+课程 ID+考试 ID 生成 KEY。

  4. 请求 Redis 服务器,获取对应的试卷数据。

  5. 返回客户端 JSON 格式的试卷

  6. 客户端根据 JSON 格式生成试卷

  • 服务器资源

  • Redis 基于内存,sentinel 是主从复制,所以根据性能分析,内存最少需要 4T(3 年)

  • 分区部署,数据均匀分布的情况下内存需要 1T

  • Redis 服务器 CPU 核数 32 核

  • 32 核 1T 内存*3*4(4 个区域)

发布于: 3 小时前
用户头像

Vincent

关注

还未添加个人签名 2018.03.14 加入

还未添加个人简介

评论

发布
暂无评论
[架构实战营]模块4作业