MySQL集群部署详解

后端 潘老师 6个月前 (11-16) 225 ℃ (0) 扫码查看

本文主要讲解关于MySQL集群部署相关内容,让我们来一起学习下吧!

为什么需要MySQL集群部署

原因:单节点的MySQL抗风险性很差,如果挂掉,会导致软件项目挂掉

目标:搭建一个高可用、高负载、高性能的6节点MySQL集群(根据你的数据量判断)

环境:CentOS7服务器、搭建好Docker环境、MySQL5.7(8.0版本宕机后需要人工对比日志和维护)、MyCat 1.6.7.4

一、MySQL集群主从同步与读写分离原理

1. 数据同步

MySQL主从同步原理是利用主从复制来实现数据同步。具体步骤如下:

  1. 数据库(Master)把数据更改记录到二进制日志(binlog)中。
  2. 从数据库(Slave)把主数据库的二进制日志复制到自己的中继日志(relay log)中。
  3. 从数据库重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性。

如果这样会发现一个问题,这是单向的同步,如果Master挂掉,那么Slave则无法继续更新数据,所以应该是双向同步,互为主从节点。

2. 读写分离

MySQL的读写分离是一种集群架构策略,目的是通过将数据库的读写操作分离到不同的服务器上,以提高整体数据库性能和并发负载能力。

在读写分离的策略中,主库负责处理事务性查询和写操作(INSERT、UPDATE、DELETE等),而从库只负责处理SELECT查询操作。这样可以使主从库分工明确,提高整体数据库性能。

主库除了处理事务性查询和写操作外,还需要将事务性操作导致的变更同步到从库中,以保证数据的一致性。这个过程一般通过主从复制(Master-Slave)的方式实现。

读写分离在数据库集群架构中有很多应用场景,比如当服务器的业务压力过大时,如果对该服务器既读又写,会影响用户体验。这时候就可以采取读写分离的方式,对只读库(配置低一点),对读写库(配置高速存储:固态硬盘等)进行分离。既可以提高查询效率,又可以保证数据的一致性。

上面的方案时一主两从,主节点是写节点,从节点是读节点,当然也可以配置更多的节点,主从同步还有一个关键,就是Master和Slave身份是固定的,如果Master宕机,Slave节点无法升级成写节点,所以,可以加上双向同步。

3. 数据切分

MySQL数据切分是指通过某种特定的条件,将存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。

数据的切分根据其切分规则的类型,可以分为两种切分模式:
一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切分可以称之为数据的垂直(纵向)切分;

另外一种则是根据表中数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上,这种切分称之为数据的水平(横向)切分。

二、docker搭建双主四从MySQL集群

直接阅读《Docker如何搭建双主四从MySQL集群》这篇文章!

三、安装MyCat管理MySQL集群

直接阅读《如何安装MyCat并管理MySQL集群》这篇文章!

总结

以上就是关于MySQL集群部署相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客,学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/11277.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】