高性能数据集群:读写分离

181 阅读1分钟

从0开始学架构学习笔记

读写分离的基本原理是将数据库读写操作分离到不同节点上

适合读压力比写压力大很多的情况。

基本实现:

数据库服务器搭建主从集群,一主一从、一主多从都可以。
数据库主机负责读写操作,从机只负责读操作。
数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。
业务服务器将写操作发给数据库主机,将读操作发给数据库从机。

读写分离的实现逻辑并不复杂,但有两个细节点将引入设计复杂度:主从复制延迟分配机制

主从复制延迟

问题:延迟达到1秒甚至1分钟以上,写入主后,没法立刻从从机读取数据。

常见解决方法:

1、写操作后的读操作指定发给数据库主服务器。 2、读从机失败后再读一次主机。 3、关键业务读写操作全部指向主机,非关键业务采用读写分离。 4、引入缓存处理。

分配机制

将读写操作区分开来,然后访问不同的数据库服务器,一般有两种方式:程序代码封装中间件封装

1、程序代码封装的典型案例:淘宝TDDL

2、中间件封装的典型案例:MySQL Router、Atlas(base on MySQL Proxy)

(细节待补充)