首先介绍MySQL节点数据同步的方式,分三种。
- 第一、异步复制(Asynchronous replication)。事务提交请求master节点后,直接返回结果,不管slave节点是否接收并处理数据。这样会导致漏数据的缺陷,当master节点crash,事务已经提交到master并处理,可能并没有传给slave节点就crash,在高并发环境中,存在漏数据的缺陷。
- 第二、全同步复制(Full Asynchronous replication)。事务提交到master,并不会马上返回给客户端,而是等待所有slave节点接收并处理完成返回后,再返回给客户端。很明显,多次网络交互影响事务响应的性能。
- 第三、半同步复制(Semisynchronous replication)。事务提交到master,同样不会马上返回给客户端,而是等待至少一个slave接收、写到relay log后,再返回给客户端。这种是折中的方式,相比异步复制数据安全更加有保障,相比全同步复制性能更高。
MySQL的同步复制默认是异步复制,搭建方式详见前篇 Mysql5.7主从复制安装配置。
网友评论