高性能数据库集群-读写分离
数据库读写分离,本质是将访问压力分散到集群中的多个节点,但没有分散存储压力。 读写分离的基本原理是将数据库读写操作分散到不同的节点。
基本实现方式: 1、数据库服务器搭建主从集群,一主一从、一主多从都可以。 2、数据库主机负责读写操作,从机只负责读操作。 3、数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。 4、业务服务器将写操作发给数据库主机,将读操作发给数据库从机。
有两个细节引入设计复杂度:主从复制延迟和分配机制。 解决主从复制延迟有几种常见的方法: 1、写操作后的读操作指定发给数据库主服务器 2、读从机失败后再读一次主机 3、关键业务读写操作全部指向主机,非关键业务采用读写分离
分配机制: 将读写操作区分开来,然后访问不同的数据库服务器,一般有两种形式:程序代码封装和中间件封装。 Mysql官方推荐的Mysql Router,主要实现的功能有读写分离、故障自动切换、负载均衡、连接池等。