• 如何设计存储架构


    步骤

    步骤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:评估读写性能

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

  • 相关阅读:
    SELECT后面有自定义函数的优化方法
    一文详解反转二叉树
    10 【异步组件 组合式函数(hooks)】
    linux中命令行如何使用git
    踩坑ffmpeg录制的mp4无法在浏览器上播放
    OPENSQL 2022.9.1
    2022.09.11学习笔记
    基于SSM的OA办公系统
    BPF bpf_spin_lock 使用排错指南
    【大学英语视听说上】课后主题作文
  • 原文地址:https://blog.csdn.net/lee_nacl/article/details/127860356