点击链接查看我的个人博客,文章更全更详细
在实际项目,当访问量大,并发量高或者业务较复杂的时候。为了优化性能,减轻一个主库mysql服务的压力,提升用户体验,会考虑分库分表或者主从模式。 项目中会存在大量的读写操作,而且读的操作可能会占很大的比例,如果写的同时使用了锁机制,那么会导致查询等待,也就导致查询很慢。为了减少这种情况的发生,可以使用从库来处理读,主库负责写。
主从又分为几种模式
- 一主一从
- 一主多从
- 多主一从
- 多主多从
这里采用一主多从的模式,实现主从数据同步。同步会有时间延迟,最终确保数据一致性。
原理
- master将变动记录到二进制日志文件(binary log)中
- master主库将二进制日志文件发送给订阅者slave
- slave通过I/O线程读取日志文件中的内容写到relay日志中
- slave执行relay日志中的事件,将数据存储到本地
注意
- 主从服务操作系统版本和位数一致
- 主库和从库 数据库版本要一致
- master要开启二进制日志
- master和slave 的 server_id 在局域网内必须是唯一的
环境
- 虚拟机
- centos7
- docker
- mysql8
机器名字 | 配置 |
---|