[架构实战营] 模块 4 作业
考试服务存储设计(一)
性能分析
在校学生考试结果存储:2.4T
离校学生考试结果存储:每年增长 0.6T
试卷请求 QPS:5 万/s
提交试卷 TPS:1700/s
详细设计
KEY= 学校 ID+课程 ID+考试 ID
数据结构= String(JSON 格式存储试卷)
请求过程
客户端请求试卷
服务端根据学生个人信息,获取学校 ID+课程 ID+考试 ID 生成 KEY。
请求 Redis 服务器,获取对应的试卷数据。
返回客户端 JSON 格式的试卷
客户端根据 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 格式存储试卷)
分区部署(根据地域分为 华北、华南、西南、华中)
请求过程
客户端请求试卷
负载均衡根据请求 Header 地域信息,选择对应区域的服务器
服务端根据学生个人信息,获取学校 ID+课程 ID+考试 ID 生成 KEY。
请求 Redis 服务器,获取对应的试卷数据。
返回客户端 JSON 格式的试卷
客户端根据 JSON 格式生成试卷
服务器资源
Redis 基于内存,sentinel 是主从复制,所以根据性能分析,内存最少需要 4T(3 年)
分区部署,数据均匀分布的情况下内存需要 1T
Redis 服务器 CPU 核数 32 核
32 核 1T 内存*3*4(4 个区域)
版权声明: 本文为 InfoQ 作者【Vincent】的原创文章。
原文链接:【http://xie.infoq.cn/article/882cd56802a0d4828a79bf208】。未经作者许可,禁止转载。
评论