开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat-高级-读写分离-双主双从架构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/756/detail/13281
MyCat-高级-读写分离-双主双从架构
一、 架构
基于 MySQL 的一主一从完成的读写分离实现,一主一从读写分离最大的弊端,是当我们的主节点也就是主数据库挂掉之后,从数据库是不能执行增删改操作的。主库挂掉之后,从库不能自动顶替上来,并且继续对外提供服务。
第二种双主双从,从而避免这个问题。
在双主双从的这种模式下只需要看如图上面这部分
在双主双从这种模式下会有四个节点,一个是 Master1 ,一个是 Slave1,一个是 Master2,一个是 Slave 2。很明显,Slave 1 是 Master1 的从节点,Slave 2 是 Master2 的从节点。正常对外提供服务的只有 Master 1 这个主节点,Master 1 和 Slave 1 是主。正常情况下只有 Master1 对外提供服务,对外提供写的操作,所有的写的 insert、update、delete 操作都会请求到 Master 1,而 Slave 是正常的切出读的操作。Master 2 和 Slave 2 他们是什么样的一个存在呢?当 Master1 挂掉之后,当主节点挂掉之后,Master 2 负责写请求,而 Slave 2 负责读请求。所以可以简单理解为 Master 2 是 Slave 2 的备用主机,当 Master 1 挂掉之后,Master 2才会生效,正常情况下 Master 2 是不会对外提供服务的。即使 Master 1 挂掉,还有 Master 2。Master 1 和 Master 2 互为备机,这是 MySQL 双主双从搭建的架构。
一个主机 Master1 用于处理所有写请求,它的从机 Slave1 和另一台主机 Master2还有它的从机 slave2 负责所有读请求。当 Master1 主机宕机后, Master2 主机负责写请求, Master1、Master2 互为备机。