开发者学堂课程【MySQL企业常见架构与调优经验分享:MYSQL 主从复制经典应用架构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/383/detail/4815
MYSQL 主从复制经典应用架构
其中:
Dbm157 是 mysql 主,dbm158 是 mysql 主的备机,dbs159/160/161 是 mysql 从MySQL 写操作一般采用基于 heartbeat+DRBD+MySOL 搭建高可用集群的方案。
通过heartbeat
实现对 mysql 主进行状态监测,而 DRBD 实现 dbm157 数据同步到 dbm158。
读操作普遍采用基于 IVS+Keepalived 搭建高可用高扩展集群的方案。
读操作普遍采用基于 LVS+Keepalived 搭建高可用高扩展集群的方案。
前端 AS 应用通过提高的读 VIP连接LVS,LVS 有 keepliaved 做成高可用模式,实现互备 MySQL 主的从节点 dbs159/160/161 通过 MySQL 主从复制功能同步MySQL 主的数据,通过 lvs 功能提供给前端 AS 应用进行读操作,并实现负载均衡。
这里要注意主从和主备的区别,从机是帮助完成数据访问的,一般是用作读操作的,而备机只是用来做备份的,不提供数据访问功能。
搭建主从集群,这里的集群一主一从、一主多从都可以,数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。
上一个主从架构的核心是读写分离,主库负责写操作,从库负责读操作。
但是这样做对于写操作也比较多的时候还是有问题,一台主库的服器是没有办法扛住持续增长的写操作压力的。
对于这个问题,可以通过水平拆分来解决,水平拆分和垂直拆分有较大区别,垂直拆分拆完的结果,每一个实例都是拥有全部数据的,而水平拆分之后,任何实例都只有全量的1/n的数据。
拆分过后的性能提升是显而易见的,我们需要关注的是如何拆分合理,常用的拆分是有范围拆分 Hash 拆分等,需要保证拆分过后的数据访问尽可能均匀的给到拆分后的库,还有就是拆分过后尽可能避免跨库的访问操作。