百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

什么是MySQL集群?带你全面掌握MySQL集群原理

yuyutoo 2024-11-08 15:39 5 浏览 0 评论

MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。初步掌握MySQL集群原理是我们学习MySQL集群要迈出的第一步。

数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余。

那么MySQL集群是如何存储数据的呢?MySQLcluster数据节点组内主从同步采用的是同步复制,来保证组内节点数据的一致性。一般通过两阶段提交协议来实现,一般工作过程如下:

  • Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交。
  • 每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好(或者无法准备该事务)。
  • Master等待所有Slave发送OK或ABORT消息

如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;

  • 如果Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
  • 每个Slave等待来自Master的OK或ABORT消息。

如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;

如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。

  • 当Master收到来自所有Slave的确认后,就会报告该事务被提交(或中止),然后继续进行下一个事务处理。

由于同步复制一共需要4次消息传递,故MySQL cluster的数据更新速度比单机MySQL要慢。所以MySQL cluster要求运行在千兆以上的局域网内,节点可以采用双网卡,节点组之间采用直连方式。

MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

  1. 管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。
  2. 数据节点:主要是对数据的存储,不提供其他的服务。
  3. SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

随着计算机和信息技术的迅猛发展和普及,行业应用系统的规模迅速扩大,行业应用所产生的数据量量呈爆炸式增长,类似于MySQL集群这样的技术得到了广泛的运用,MySQL集群原理的运用就显得尤其重要。

动力节点的MySQL集群教程,对于MySQL集群技术的应用场景有着详细的介绍,能够有效帮助我们学以致用,教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。

  • MySQL集群视频教程

https://www.bilibili.com/video/BV1Rg4y1i7VR

  • MySQL集群教程配套资料下载

http://www.bjpowernode.com/?toutiao

课程目录

?001.MySQL集群视频教程:主从复制介绍

?002.MySQL集群视频教程:主从复制结构

?003.MySQL集群视频教程:主从复制流程原理

?004.MySQL集群视频教程:多实例安装

?005.MySQL集群视频教程:多实例链接

?006.MySQL集群视频教程:一主多从-配置

?007.MySQL集群视频教程:-一主多从测试

?008.MySQL集群视频教程:双主双从配置

?009.MySQL集群视频教程:双主双从测试

?010.MySQL集群视频教程:多数据源-环境搭建

?011.MySQL集群视频教程:多算数据源实现

?012.MySQL集群视频教程:修复MySLQ主从复制

?013.MySQL集群视频教程:多数据源的问题

?014.MySQL集群视频教程:动态数据源

?015.MySQL集群视频教程:动态数据源执行流程

?016.MySQL集群视频教程:SpringBoot集成多数据源

?017.MySQL集群视频教程:SpringBoot集成多数据源问题

?018.MySQL集群视频教程:SpringBoot集成动态数据源

相关推荐

.NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......

...

全局和隐式 using 指令详解(全局命令)

1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...

请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍

1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...

ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战

我是一位多年后端经验的工程师,其中前几年用ASP.NET...

.NET AOT 详解(.net 6 aot)

简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...

一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)

哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...

asar归档解包(游戏arc文件解包)

要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...

在PyCharm 中免费集成Amazon CodeWhisperer

CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...

2014年最优秀JavaScript编辑器大盘点

1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...

基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享

项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...

JetBrains Toolbox推出全新产品订阅授权模式

捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...

idea最新激活jetbrains-agent.jar包,亲测有效

这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...

CountDownTimer的理解(countdowntomars)

CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...

反射为什么性能会很慢?(反射时为什么会越来越长)

1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...

btrace 开源!基于 Systrace 高性能 Trace 工具

介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...

取消回复欢迎 发表评论: