如何设计存储架构

步骤

步骤1:估算性能需求

任务

基于具体的业务场景来估算性能需求,包括存储量、读写性能等

挑战

  1. 不知道如何估算
  2. 担心估算不准

步骤2:选择存储系统

任务

根据技术储备、方案优缺点选择合适的存储系统

挑战

  1. 不知道有哪些存储系统
  2. 知道但是不知道应该怎么选

步骤3:设计存储方案

任务

基于选择的存储系统,设计其具体的存储方案,如果发现不行,回到步骤2再换一个

挑战

  1. 不知道如何设计存储方案

估算存储性能

步骤

在这里插入图片描述

步骤1:用户量预估

规划

根据成本、预算、目标等确定

案例
  1. 某个新业务预算投入2000万拉新
  2. 年底某业务用户规模达到100万
推算

基于已有数据推算

案例
  1. 做一个面向广州在校大学生的购物小程序
  2. 香港地铁扫码乘车业务
对比

跟已有标杆进行对比

案例
  1. 跟竞争对手比
  2. 跟自己已有的同类业务比

步骤2:用户行为建模

指标具体说明
行为用户的典型行为
数量采取某种行为的用户数量
频率用户某种行为的频率
案例
  1. 预计每个月使用钱包付款码的用户有100万,付款笔数到达500万笔
  2. 每天使用扫码乘车的用户有500万,平均扫码次数4.6次

步骤3:性能需求计算

指标具体说明
数据量需要存储的数据总量(G)
请求量对数据的读写请求量(TPS/QPS)
预留量预留的增长空间
说明和技巧
  1. 并不是所有数据都一定要用同样的存储方式,例如当前数据和历史数据可以分开存储
  2. TPS/QPS需要计算出以秒为单位的数值,并且计算“平均值”和“峰值”
  3. 预留增长空间不能太大也不能太小,如果能做到线性伸缩是最好的

选择存储架构

在这里插入图片描述

常见存储系统

在这里插入图片描述

如何选择合适的存储系统

指标具体说明
技术本质挑选应用场景和系统本质契合的系统
技术储备挑选熟悉的
综合考虑可维护性、成本、成熟度等

什么是技术本质

系统的DNA,有别于其他系统的典型特征

技术本质有什么影响

技术本质决定了其核心应用场景和优缺点

举例

  1. 游戏服务器用什么存储玩家数据比较好
  2. 论坛服务器用什么存储帖子数据比较好

设计存储方案

步骤1:设计数据结构

选择或者设计具体的数据结构,例如如何设计具体的表,选择Redis的哪个数据结构

步骤2:验证读写场景

将数据结构放到具体的场景进行验证,设计读写具体如何执行(Rule)

步骤3:评估读写性能

评估具体场景下的数据结构设计是否满足性能需求,不满足则重新设计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值