写点什么

架构实战营模块 4 作业

用户头像
Veek
关注
发布于: 2021 年 05 月 23 日

主题

考试试卷

千万大学生考试试卷

用 Redis-Sentinel 存储方案设计


行为建模

学生 1000 万人,假设,只有大一到大三学生参考考试,假设每一年级人数均分为 250 万人。

假设:

一学期修 20 门课,一门课每学期考 2 次试,每学年有 2 个学期。

考试集中在一个月内,一周考 5 天,一天上午考 2 门,下午考 2 门

读卷时集中在考试开始后 1 分钟内

交卷时集中在考试结束前 30 分钟内


性能估算

分为存储量计算和考试时的读卷和交卷时的性能估算


存储量计算

分为学校需要的考试结果存储的总量 2.4TB

和每一年新增的存储量 0.6TB


每一份考卷假设答题的存储量




性能估算


读写分析

正常情况的读写:

从 Redis M1 读取:

写入时由 Redis M1 写入,再用异步写到 Redis R2 和 Redis R3 做备份

当异常发生:

当 Sentine1 发现 Redis M1 无法完成读操作,会通知 Sentinel 2 和 Sentinel 3 做选举,让 Redis R2 或 Redis R3 作为 Master,启动 failover 机制,把读的数据回覆给 client

当 Sentine1 发现 Redis M1 无法完成写操作,会通知 Sentinel 2 和 Sentinel 3 做选举,让 Redis R2 或 Redis R3 作为 Master,启动 failover 机制,把写的数据写到 Redis M2,再异步复制给 Redis R1 和 Redis R3

Sentinel 设计


本案经过性能估算 QPS TPS

单机 Redis 可应付性能需求。

考虑到失效时高可用

Sentinel 至少要 3 个,

Redis Master 之外布 2 个 Redis Replica 当作数据复写的点,同时也将 Sentinel 安装在 Redis Replica 内

监控读写状况

若发生 Redis M1 发生问题无法读写

会切换至 Redis Replica 的节点,使服务可以继续


Failover


用户头像

Veek

关注

还未添加个人签名 2020.03.05 加入

还未添加个人简介

评论

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