mysql的集群和主从的区别

文章介绍了MySQL的两种扩展和高可用方案:MySQLCluster和主从架构。MySQLCluster采用分布式节点架构,提供高容错性和同步复制,适合需要强一致性的场景,但数据更新速度较慢。而主从架构实现简单,通过异步复制实现读写分离,提高性能,但存在数据延迟和无故障自动切换的问题。主从架构适用于资源有限、成本控制严格的环境。
摘要由CSDN通过智能技术生成

现在的项目使用mysql数据库,要自己设计数据存储架构。所以研究了一下mysql的集群(cluster)和主从(master/slave)这两个概念。两者非常容易混淆,所以需要分辨出这2者之间的区别。

一、Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能。

需要用到mysql cluster安装包,在集群中的每一个机器上安装。

有三个关键概念:Sql节点(多个),数据节点(多个),管理节点(一个),数据节点之间采用的是同步复制来保证各节点之间的数据一致性。

容错性:管理节点部署在一台机器A里,一套数据节点和SQL节点部署在机器B里,另一套数据节点和SQL节点部署在机器C里。当机器B挂掉时,机器A和机器C是正常的,那该mysql数据还是可以正常使用的,及时恢复机器B就行。

同步复制:
a) Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交。
b) 每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好(或者无法准备该事务)。
c) Master等待所有Slave发送OK或ABORT消息,如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;如果 Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
d) 每个Slave等待来自Master的OK或ABORT消息。如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
e) Master收到来自所有Slave的确认后,就会报告该事务被提交(或中止),然后继续进行下一个事务处理。
由于同步复制一共需要4次消息传递,故mysql cluster的数据更新速度比单机mysql要慢。所以mysql cluster要求运行在千兆以上的局域网内,节点可以采用双网卡,节点组之间采用直连方式。

这里写图片描述
二、主从(Master-Slave): 主从机器上安装mysql community(普通版)就可以。
主从之间是通过mysql的replication来保证数据的一致性。相对mysql cluster的数据同步方式来讲是异步的。
Replication:主节点要开启binlog,设置一个唯一的服务器id(局域网内唯一);从节点设置服务器id,binlog记录了master上的所有操作,会被复制到从节点的relaylog并在从节点上回放。

这里写图片描述

优点:

  • 读写分离,增加整体性能
  • 部署简单,维护方便,需要资源少,成本低,最少两台即可搞

缺点:

  • 无故障转移,Master挂了整个集群只能读取不能写入,需要引入其他的高可用机制
  • 数据存在一致性问题,因为异步,所以Slave的数据一定不是最新的,需要等待一个时间窗后才能读取
  • Slave过多时Slave对Master的负载以及网络带宽都会成为一个严重的问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL集群是指将多个MySQL服务器组成一个集群,通过共享数据和负载均衡来提高系统的可靠性、可用性和性能。主从复制是MySQL集群中常用的一种技术,它通过将一个MySQL服务器作为主服务器,将其他MySQL服务器作为从服务器,实现数据的复制和同步。 主从复制的原理是,将主服务器的数据变更记录在二进制日志中,从服务器通过读取主服务器的二进制日志来实现数据的复制和同步。从服务器会定时连接主服务器,获取最新的二进制日志并将其应用到自己的数据库中,从而实现数据的同步。 主从复制可以提高系统的可用性和性能,因为从服务器可以承担读操作的负载,从而减轻主服务器的压力。同时,主从复制也可以实现数据的备份和恢复,以及数据的分析和处理等功能。 在实现主从复制时,需要注意以下几点: 1. 主从服务器的MySQL版本和配置要一致。 2. 主从服务器之间需要建立可靠的网络连接,以保证数据的同步。 3. 在主服务器上开启二进制日志记录并设置相应的参数。 4. 在从服务器上设置主服务器的信息,并开启从服务器的复制功能。 5. 注意主从服务器之间的时间同步,避免时间不同步导致数据的错误同步。 总之,主从复制是MySQL集群中一个重要的技术,可以提高系统的可靠性和性能,但也需要结合具体的业务场景和运维需求进行合理的规划和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值