分库分表之Mycat进阶

分库分表之Mycat进阶

1 为什么需要读写分离
1.1 读写分离的背景
数据量很大时候,我们的数据库面临着很大的压力,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。读写分离的实现就是在执行sql的时候,根据读操作还是写操作,根据读写映射到不同的数据库上。
1.2 读写分离的原理
读写分离的实现原理如下图所示:在这里插入图片描述

  1. 主节点必须启用二进制日志,记录任何修改了数据库数据的事件。
  2. 从节点开启一个线程(I/O Thread)把自己扮演成 mysql 的客户端,通过 mysql 协议,请求主节点的二进制日志文件中的事件
  3. 主节点启动一个线程(dump Thread),检查自己二进制日志中的事件,跟对方请求的位置对
    比,如果不带请求位置参数,则主节点就会从第一个日志文件中的第一个事件一个一个发送给从节点。
  4. 从节点接收到主节点发送过来的数据把它放置到中继日志(Relay log)

猜你喜欢

转载自blog.csdn.net/weixin_40055163/article/details/109236037