一、主从复制概念
主从复制是MySQL提供的基本的技术,主从复制的流程:binlog二进制日志(除了查询其他的更改相关的操作都会记录在binlog里面)、relay log日志和三个线程(master的一个线程和slave的两个线程)。
主库(master)对外提供数据的增删改查服务,主库中涉及到数据的修改都会写在binlog从库(slave)用来数据同步和数据备份,通过专门的线程从主库里面的binlog把主库和数据、权限、表结构相关的修改同步到从库里面,相当于是在主库上做的所有修改都会通过都会通过主从复制机制体现在从库上。
主从复制的好处:数据备份,我们甚至可以给它做一个热备份,就是通过MySQL中间件mycat,可以实现容灾,容灾也体现了高可用。
容灾:如果主库挂了,由中间件代理mycat自动把服务的请求映射到从库,由从库继续对外提供服务,体现出了高可用性(后端的服务允许一定的异常发生,但是后端的架构服务要可以容错,把这些异常的错误处理掉,并对外重新提供正常的服务)
二、读写分离的概念
读写分离是基于主从复制来实现的。在实际的应用环境中,肯定是读操作多,就像我们在电商平台上去购买东西,可能看了100个也就买了一两个。所以读操作永远比写这种更新操作多很多。所以我们基于主从复制的读写分离配置,就是让一个主库专门用来做数据的修改,写的时候专门在主库上写,主库通过主从复制把数据的更改通过binlog同步到从库上去,那么其他的客户端查询的请求都会最终映射到从库上去,而我们一个主库带上两三个从库,主库专门用来做数据的更新(写操作),从库专