美文网首页架构能力提升架构设计技术开发
架构设计读书笔记-性能篇(一)

架构设计读书笔记-性能篇(一)

作者: 高琳旭 | 来源:发表于2021-06-26 09:51 被阅读0次

    概述

    计算机的性能,从硬件来说,一个和IO相关(磁盘、内存),一个和计算能力相关(CPU、GPU)。说到软件的性能,也可以理解为这两个方面,即存储和计算。

    一、存储高性能

    1、关系数据库

    1)读写分离

    定义:将数据库的读写操作分散到不同的节点上。

    基本实现

    (1)    一般采用主从集群的方式,一主多从,主可以进行读写操作,从只负责读

     (2) 主通过复制的方式同步写的数据到从,每个主从节点需要保存完整的数据

     常见问题

    (1)主从复制延迟。主节点写完成后,如果有大量数据需要同步,就会出现延迟现象,从从库读取就会出现读取不到的现象。

    (2)主从复制失败。异常情况,如网络瞬断,从节点异常等,会出现数据复制失败的情况。

    解决方法

    (1)复杂延迟可以采用关键业务,如注册登录从主节点访问,其它从从节点访问,避免关键流程错误

     (2)复制失败的异常情况,可以启动定时任务专门进行主从节点数据同步。

    其它流程

      主节点异常情况下,需要重新进行选主。

    实现示例

    淘宝的开源TDDL:https://developer.aliyun.com/article/25457?spm=a2c6h.14164896.0.0.43b97090xkbShc

    2)分库分表

    定义:单个数据库服务器存储不足,可以将存储分散到多台服务器上,可以通过分库或分表的方式。

    分库/分表方法(吐槽一下简书的表格太难弄了,就截图吧):

    2、NoSQL

    关系数据库的短板

    1)、存储按行记录,不方便存储数据结构

    2)、schema扩展不方便

    3)、大数据下IO很高

    4)、全文搜索功能弱

    3、缓存

    存储系统性能不满足要求的情况下,可以通过缓存来加强性能,典型场景:

    1)动态显示的数据,如在线人数

    2)读多写少,如微博一条数据,写只有1条,读可能成千上万。

    典型产品: Memcache

    缓存使用需要注意以下几点

    相关文章

      网友评论

        本文标题:架构设计读书笔记-性能篇(一)

        本文链接:https://www.haomeiwen.com/subject/rjoayltx.html