读写分离是利用数据库的复制技术,将读和写分布在不同的处理节点上,从而达到高可用性和扩展性的目的。主数据库提供写操作,从数据库提供读操作,在很多系统中更多的是读操作。当数据库进行写操作的时候,数据要同步到从数据库,这样才能有效的保证数据库的完整性。Mysql也有自己的同步数据的技术。Mysql通过二进制日志来复制数据,在主数据库同步到从数据库之后,从数据库一般由多态数据库分配。Mysql提供了Mysql Proxy来实现读写分离。
目前较为常见的有两种读写分离实现方式:
1,在代码中根据Select、Insert进行路由分类,这种方法在目前生产环境中应用最为广泛。
2,基于中间代理层实现
代理层位于客户端和服务器之间,代理层服务器收到客户端的请求后通过后台判断转发到后端数据库,通过share plex几乎实时的复制数据到其它数据库节点,再通过特定的模块检查数据库状态,并且进行负载均衡、读写分离,极大的提高了系统的可用性。