【成为架构师2-9】早期性能优化-三大分离:读写分离与前后台分离

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

上一篇介绍了三大分离设计中的动静分离,本篇介绍了之后的两种——读写分离、前后台分离

1 读写分离

读写分离的核心思想就是:使用数据库分组,快速提升数据库读性能

【成为架构师2-9】早期性能优化-三大分离:读写分离与前后台分离
读写分离的架构有三个特点:

  1. 主库负责数据库写入
  2. 从库可以水平扩展以实现数据库读性能的线性提高
  3. 主库与从库之间使用某种机制进行同步,比如binlog

2 水平切分

容易和读写分离相混淆的就是水平切分技术,读写分离的实质是进行分组,而水平切分的核心是分片
【成为架构师2-9】早期性能优化-三大分离:读写分离与前后台分离
比如上图中的按照id对2取模对数据进行分片

分片是提升数据库存储容量的有效方案,但它往往涉及系统改造

3 前后台分离

前后台介绍

前后台分离与我们常听到的“前后台分离”是不同的概念,前后台分离关注的业务上的区分,而前后台分离是真实的技术实践,是前端与后台采取的开发和实现模式,前后台分离可以包含前后端分离这一实现模式

前后台耦合,后台的系统瓶颈将会影响前台的用户业务,何为前后台,通常通过业务进行简单的区分:

  1. 前台:用户访问的对外系统
  2. 后台:运营访问的对内系统

举一个房产信息平台的例子:

  1. 前台写入,用户发布数据
  2. 后台写入,爬虫抓取数据
  3. 前台读取,用户浏览数据
  4. 后台读取,运营浏览数据

从以上可以看出前后台的数据特点:

  1. 前台数据特点:结构化、变化少
  2. 后台数据特点:数据源多,结构变化快
耦合的架构设计

在早期,耦合的架构设计是这样子的:
【成为架构师2-9】早期性能优化-三大分离:读写分离与前后台分离
其特点就是:前后台共用一个数据库

这就很容易使后台的系统瓶颈影响到前台

分离的常见设计

那么分离的核心也就是分离前后台的数据库了:
【成为架构师2-9】早期性能优化-三大分离:读写分离与前后台分离
但是后台爬虫抓取的数据存入后台数据库后,前台呈现信息是需要这个内容的,所以需要一个后台数据库到前台数据库的转化机制(关于异步转换的落地技术就留给读者自己查阅资料了)

通过异步转换,使得前台与后台分离,后台的数据库变动、架构变动都可以几乎不影响前台的架构,所要做的只是更新异步转换即可


上一篇回顾:【成为架构师2-8】早期性能优化-三大分离之一:动静分离
下一篇更精彩:持续更新中…