浅谈MySQL集群原理

MySQL集群、Redis集群、RabbitMQ集群 MySQL-MMM 是 Master-Master Replication Manager for MySQL(mysql 主主复制管理器)的简称。脚本)。MMM 基于 MySQL Replication 做的扩展架构,主要用来监控 mysql 主主复制并做失败转移。其原理是将真实数据库节点的 IP(RIP)映射为虚拟 IP(VIP)集。 阅读详情

本文简单介绍一下 MySQL 集群的基本原理!


一、什么是MySQL集群

   MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。

   数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。

   无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。

   通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余。


二、架构图



三、如何存储数据

   1.Mysqlcluster数据节点组内主从同步采用的是同步复制,来保证组内节点数据的一致性。一般通过两阶段提交 协议来实现,一般工作过程如下:

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要求运行在千兆以上的局域网内,节点可以采用双网卡,节点组之间采用直连方式。


疑问: 对cluster进行扩容增加数据节点组时会不会导致数据更新速度降低?

答:不会,数据更新速度会变快。因为数据是分别处理,每个节点组所保存的数据是不一样的,

也能减少锁定。


   2.Mysqlcluster将所有的索引列都保存在主存中,其他非索引列可以存储在内存中或者通过建立表空间存储到磁盘上。如果数据发生改变(insert,update,delete等),mysql 集群将发生改变的记录写入重做日志,然后通过检查点定期将数据定入磁盘。由于重做日志是异步提交的,所以故障期间可能有少量事务丢失。为了减少事务丢失,mysql集群实现延迟写入(默认延迟两秒,可配置),这样就可以在故障发生时完成检查点写入,而不会丢失最后一个检查点。一般单个数据节点故障不会导致任何数据丢失,因为集群内部采用同步数据复制。


四、MySQL集群的横向扩展

1.添加数据节点组来扩展写操作,提高 cluster的存储能力。支持在线扩容,先将新的节点加入到clsuter里,启动后用 ALTER ONLINE TABLE table_name REORGANIZE PARTITION   命令进行数据迁移,把数据平均分配到数据节点上。

2.添加Slave仅仅扩展读,而不能做到写操作的横向扩展。

整个系统的平均负载可以描述为:

AverageLoad=∑readload+ ∑writeload / ∑capacity

假设每个服务器每秒有10000的事务量,而Master每秒的写负载为4000个事务,每秒的读负载为6000,结果就是:AverageLoad=6000+4000/10000=100%

现在,添加3个slave,每秒的事务量增加到40000。因为写操作也会被复制,每个写操作执行4次,这样每个slave的写负载就是每秒4000个事务。那么现在的平均负载为:AverageLoad=6000+4*4000/ 4*10000=55%


五、MySQL集群的优缺点

优点:

a)  99.999%的高可用性

b)快速的自动失效切换

c)灵活的分布式体系结构,没有单点故障

d)高吞吐量和低延迟

e)可扩展性强,支持在线扩容

缺点:

a)存在很多限制,比如:不支持外键

b)部署、管理、配置很复杂

c)占用磁盘空间大,内存大

d)备份和恢复不方便

e)重启的时候,数据节点将数据load到内存需要很长时间

本文简单介绍了一下MySQL集群,下面的博客会介绍如何搭建MySQL集群!
mysql集群架构--主从模式原理 并行复制的核心思想采用多线程机制来减少从库复制延迟。 阅读详情

相关推荐

转录组分析中的Fastp和FastQC:如何快速检测数据质量并优化流程

本文深入探讨了转录组分析中数据质量控制的核心流程,重点介绍了Fastp和FastQC两款工具的组合应用。FastQC负责对原始测序数据进行全面质量评估,生成可视化报告;Fastp则能一站式完成接头切除、低质量序列过滤、长度筛选等关键质控步骤。文章提供了详细的参数解读、实战脚本和自动化流程构建指南,帮助研究人员快速检测数据质量并优化预处理流程,为下游的差异表达等分析奠定可靠基础。

weixin_28452161的博客 178

MySQL集群最全详解(图文全面总结)

主从复制是 MySQL 中最常用的集群模式之一,一个主服务器(Master)负责所有的写操作,并将这些更改,异步复制到一个或多个从服务器(Slave)上。在实际应用中,为了进一步提高数据库的性能和扩展性,可以采用读写分离、和分片法(分库分表)相结合的方式构建 MySQL 集群。MyCAT 是一个开源的数据库中间件,MyCAT 通过配置规则将, SQL 请求路由到相应的数据库、或表。从服务器上的读取和应用:从服务器读取主服务器上的二进制日志,并在从服务器上重放这些日志。

zznn0306的博客 1万+

ncl泰勒图(均方根误差、标准差、相关系数)

ncl泰勒图(均方根误差、标准差、相关系数)

weixin_61281699的博客 8005

Mysql常见的集群方案

1、是官方提供的主从同步方案,用于将一个 MySQL 的实例同步到另一个实例中,在主从复制中,从库利用主库上的 binlog 进行重播,实现主从同步,默认是异步同步,针对其在不同场景下的一些缺陷,衍生出了半同步复制,强同步复制等数据高可用的方案;2、组复制又称为 MGR,引入复制组主要是为了解决传统异步复制和半同步复制可能产生数据不一致的问题, MGR 由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点 (N / 2 + 1) 决议并通过,才能得以提交;3、

MrLee的博客 1万+

人大金仓V8R3企业版License更新全攻略:从查看到重启一步到位

本文详细解析了人大金仓V8R3企业版License更新的完整运维流程,涵盖从诊断当前授权状态、获取与验证新文件、精准定位旧文件路径,到安全替换文件及服务重启验证的全过程。重点针对更新流程中常见的版本匹配、文件定位、权限与服务重启等关键环节提供了实战解决方案和避坑指南,帮助运维人员高效、平稳地完成授权续期。

redis7keeper的博客 895

手把手教你用MaxEnt+ArcGIS玩转物种分布预测

本文详细介绍了如何利用MaxEnt最大熵模型与ArcGIS软件进行物种分布预测。通过实战案例,从数据收集、环境变量处理、模型参数设置到结果可视化分析,手把手教你掌握生态位模型的核心流程。结合SDM toolbox插件,可高效完成数据预处理与高级空间分析,是生态学与保护生物学研究的实用指南。

weixin_29309475的博客 559

Mysql数据库集群(主从复制-集群,Sharding-JDBC)

Mysql数据库集群(主从复制-集群,Sharding-JDBC)

weixin_48133130的博客 5157

Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】

本文章是Unity零基础到入门专栏的系列文章。 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习! 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

努力前行,总会成为自己心中的那道光 8万+

MySQL集群---①浅谈MySQL集群原理

本文简单介绍一下MySQL集群的基本原理! 一、什么是MySQL集群    MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。    数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保

马兆娟 廊坊师范学院信息技术提高班第八期 7572

科研级YOLOv8 Neck革新:HS-FPN模块赋能,让特征融合更高效且参数量直降100W的实战指南

在文件夹下新建HS_FPN.py,将上述和HS_FPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

FJN110的博客 151

MounRiver Studio(MRS)使用技巧:添加头文件目录;增加代码分组

MounRiver Studio(MRS)使用技巧:添加头文件目录

cheng___yi的博客 1808

浅谈mysql集群

一、什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。 数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)...

Yijia0531的博客 182

基于ArduPilot的旋翼式无人机飞行器开发系列(二,学习路线)

一,热爱 作为一名耿直的技术男,在这里我只想说一句,热爱是可持续学习的第一要素,也只有热爱才能让你坚持到最后。 至于最后能得到什么,只有你自己知道。常说书中自有颜如玉,书中自有黄金屋。如果你是为了颜如玉,我相信大多数颜如玉做不了你的红颜知己。如果是为了黄金屋,当你持续投入时间和金钱却看不到回报的时候,相信退堂鼓早已隆隆作响。 我给自己的信条就是为当下努力工作,为将来持续学习。当前飞控行业并没有爆发,如果想赚块钱,去互联网汽车,去VR/AR吧,去元宇宙吧。 那么我热爱...

从0到1,突破自己 1665

浅谈集群的分类

单台服务器本身会受到带宽、内存、处理器等多方面因素的影响,当通过垂直扩展已经无法提升系统性能时,我们就需要通过水平扩展,即以集群的方 式来部署服务,从而提升系统整体性能。集群在提升性能的同时,也可以减轻单机器的压力,同时提高系统的可用性。这就是我们常说的加机器,简单粗暴,但非常有效。提到集群,一定会想到分布式,不过要注意这两者的区别。集群强调的是服务的多个副本冗余部署;分布式强调的是将整个系统拆分成多个子系统独立开发、维护和运行,每个子系统仍然以集群的方式部署。

hbnn111的专栏 1503

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mysql社区还是集群_浅谈mysql集群

一、什么是MySQL集群MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。无共享的对等节点使得某台服务器上的...

weixin_29026443的博客 234

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

浅谈MySQL高可用集群架构

在前面了解了浅谈MySQL高可用复制架构以后,认识到通过简单配置步骤,就能构建出强大的数据库架构,但从复制架构可以看出无论是主备切换,还是主从换位等操作,或多或少都需要一些“短暂的维护”和人工参与,因此若要想达到4个9或者5个9的高可用,光用复制架构还远远不够。 除了复制架构以外,MySQL还有一个同样令人瞩目的高可用架构-集群架构。 基本概念 MySQL集群是一个无共享的、分布式节点架构...

lsy 435

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

mysql Pxc工作原理_浅谈MySQL-PXC架构

一、PXC概述PXC是基于Galera协议的MySQL高可用集群架构。具有高可用性、方便扩展且可以实现多个MySQL节点间的数据同步复制和读写,保证数据的强一致性。可以基本达到实时同步且相互的关系是对等的,各节点之间各自为主,这种架构不共享任何数据,是一种高冗余架构。PXC的操作流程。首先客户端发起一个事务,该事务先在本地执行,执行完成后发起对事务的提交操作前会将产生的复制集广播出去获得一个全局的...

weixin_35343856的博客 1911

MySQL的集群配置和读写分离配置

举例来说,假设我们有4个数据节点并且NoOfReplicas设置为2.四个数据节点具有节点ID 2,3,4和5.然后,第一节点组由节点2和3形成,并且第二个节点组,按节点4和5.以这样的方式配置集群很重要:相同节点组中的节点不会放在同一台计算机上,因为单个硬件故障会导致整个集群发生故障。每个节点组中的节点都保存有一个数据副本。副本的数量与每个节点组中节点的数量相同,即每个节点都持有着整个节点组中的所有数据,自身作为所持分区的主要副本,作为其他分区的后备副本。数据节点的数目与副本的数目相关,是片段的倍数。

Leonard_csdn的博客 1324

浅谈MySQL集群高可用架构

前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此数据库的高可用方案是一直以来的讨论热点,今天就各种的高可用方案,谈一下个人的

Enweitech Software Works 1333

浅谈集群版Redis和Gossip协议

Gossip算法又被称为反熵(Anti-Entropy),熵是物理学上的一个概念,代表杂乱无章,而反熵就是在杂乱无章中寻求一致,这充分说明了Gossip的特点:在一个有界网络中,每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一致。也就是说上面的信息,就是集群中Node相互八卦传播流言蜚语的内容主题,而且比较全面,既有自己的更有别人的,这么一来大家都相互传,最终信息就全面而且准确了,区别于拜占庭帝国问题,信息的可信度很高。

2501_90404120的博客 658

浅谈MYSQL之主从复制

浅谈MYSQL之主从复制MYSQL 主从复制形式MySQL 主从复制原理MySQL 主从复制过程MySQL 主从复制模式实现主从复制异步模式实验:主从模式复制冲突的解决 MySQL 主从复制概念 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上...

黑白一戒 231

浅谈 MySQL 集群高可用架构

浅谈 MySQL 集群高可用架构 点击下载文章原地址 http://mp.weixin.qq.com/s/MscsB5K_19MggzB2s5J88g 一,前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务

崔崇东的博客 590

浅谈Canal原理

canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据和。应该是阿里云DTS(Data Transfer Service)的开源版本。基于Mysql的Slave协议实时dump binlog流,解析为事件发送给订阅方。单Canal instance,单DTS数据订阅通道均只支持订阅一个RDS,提供给一个消费者。可以使用canal-client客户端进行消息消费。

Sumuxi9797926的博客 1536

MySql: 浅谈主从复制简介、原理、方式

1.简介 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。 此时数据库集群就很好的解决了这个问题。 采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。 在此之前我们必须要保证每台MySQL服务器里的数据同步。 数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。 MySQL数据库自身提供的主从...

韩超的博客 (hanchao5272) 638
上一篇: Eclipse下导入外部jar包的三种方式
下一篇: Windows平台搭建MySQL CLUSTER集群
Footloose_
博客等级 码龄10年 254粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值