【MySQL】galera集群原理简介

【MySQL】galera集群原理简介

  1. 特性
    基于行复制的完全并行同步复制
    实时多主架构,任意节点可读写
    无延迟复制,事务零丢失,可靠健壮的读写体验。
    自动化节点关系控制:节点故障自动摘除,节点加入自动协调
    接近原生的MySQL数据库连接的体验
    2.应用
    percona分支的PXC集群,
    Maria分支的MariaDB Cluster集群
    3.原理简析
    当一个事务在当前写入的节点提交后,通过wsrep API(write set replication API)将这个事务变成
    写集(write set)广播到同集群的其他节点中,其他节点收到写集事务后,对这个事务进行可行性检查,
    并返回结果给wsrep API。
    若大多数节点都预估自己可以成功执行这个事务,则wsrep API会做出仲裁,通知所有可以成功执行这
    个事务的节点提交这个事务,并将事务成功提交的消息返回给客户端,同时根据需要剔除没有成功执行
    事务的节点
    4.galera共享库
    galera本身是作为一个插件式的共享库文件,MySQL通过调用galera写集复制API挂钩,获得galera集群
    特性。
    4.1 galera共享库组成部分
    galera库是一个提供准备,复制,应用写集事务功能的协议栈,其重要组成部分为:
    wsrep API:写集复制功能组件,负责提供关系型数据库管理与复制服务,定义接口
    wsrep hooks:在数据库引擎中的集成写集组件
    Gelera Provider:将共享库转化为wsrep API
    Certification Layer:保护写集并完整性,验证写集完整性
    replication:管理复制协议,提供完整的指令系统
    GCS framwork:为集群组通信提供插件架构
    5.优势
    与异步复制相比
    数据一致性强,传统异步复制并不能保证主从数据一致性,这是由于一般情况下,主库多线程并发执行
    事务,但从库却只有一个线程重做事务,在高压力情况下必然会导致主从延迟。
    与使用半同步复制或分布式锁实现的同步复制相比
    性能高,扩展性好,半同步复制在高负载甚至从库性能较差的情况下,难以保证其性能。即使自动的
    从半同步复制切换到异步复制,也会牺牲其最大的优点:一致性。其扩展友好度也较差
    galera集群的独特优势
    1.集群中的每个节点都保存着一份完整的数据副本,数据备份安全性高
    2.集群扩展性强,可以自适应的增加或者下线节点:
    新节点上线时,可以空库状态直接从集群中获取全量数据传输(SST),也可以选择从恢复最新备份状
    态加入集群,获取差量数据传输(IST)
    下线维护其中一个节点时,直接关闭实例,集群就会自动踢出这个节点。维护完毕上线后,会根据自身
    数据与集群数据的落后程度决定通过SST或者IST传输数据。
    3.高效的同步效率,提供了高性能的读写状态(相对于同步复制)。由于同步机制的原因,甚至可以
    通过增加slave线程的办法更进一步提高节点同步效率
    4.更加友好的软硬件兼容性:MySQL官方的NDB,虽然也可以实现同样功能,但因对软硬件要求较高,
    导致其使用量与galera集群不在一个数量级,其增加节点容易,但无法不停机移除节点
    7.缺点:
    DDL操作会严重阻塞同步线程,线上大动作DDL会导致有可能导致节点堵塞无响应,更进一步会导致
    部分节点下线。实际使用中需要搭配pt-osc或者gh-osc等在线DDL工具来进行操作DDL。

附:无延迟复制是指写集同一时间提交,但实际环境中可能因为部分原因导致节点间执行速度有差异,但从理念上已经比半同步复制更先进了一些
本文部分内容参考了galera官方网站的内容,与其《Minimizing downtime and maximizing elasticity with Galera Cluster for MySQL》白皮书



 本文转自 angry_frog 51CTO博客,原文链接:http://blog.51cto.com/l0vesql/2044262

来源:https://yq.aliyun.com/articles/498701


智能推荐

【JY】No.7.3力学架构Abaqus结构智能选型教程

   Abaqus结构智能选型 本例以下面这个赛题为例,存在一个中部拟集中荷载的结构,欲求最优效率的受力方案,该例子可以供读者思考和学习,研读第三章中的概念设计,类似于力流的分析,有助于力学架构设计的方案设计。 第一步:根据题目进行结构建模 打开Abaqus软件,并开始对结构外围条件进行建模: 填写题目规定的结构长度: 生成结构,如下图所示: 第二步:填写材料本构 如下点击,并...

Random Forest

Random Forest——随机森林 上一篇是讲到了决策树,这篇就来讲一下树的集合,随机森林。 ①Aggregation Model 随机森林还是没有脱离聚合模型这块,之前学过两个aggregation model,bagging和decision tree,一个是边learning边uniform。首先是boostrap方式得到数据D1,之后训练做平均;另一个也是边le...

redis分布式事务脏数据问题

1、通过redisson处理redis分布式事务锁   redis分布式事务存在的问题? 当一个redis  master宕机了,在进行主从复制的时候又来了一个事务,这时候新的master又好了,这种情况就出现了两把分布式事务锁。   处理方案? 通过mysq进行处理,通过幂等方式处理,其实分布式锁解决的就是幂等问题 主要设计思路, 消息表:主要存要操作的消息操作去重...

【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)

1 卷积神经网络:输入层 之前提到多层感知机的参数太多,导致训练耗时长并且对图像处理也不具有优势,因此大神们 就提出了多层神经网络,其中最经典的是卷积神经网络(Convolution Neural Network, CNN)。 一般 CNN网络分为输入层、卷积层、池化层、全连接层及输出层。以CNN中最经典的LeNet5网络结构来说明。LeNet5的结构为“输入层--卷积层1--池化层1...

超像素、语义分割、实例分割、全景分割 傻傻分不清?

在计算机视觉中,图像分割是个非常重要且基础的研究方向。简单来说,图像分割(image segmentation)就是根据某些规则把图片中的像素分成不同的部分(加不同的标签)。 图像分割中的一些常见的术语有:superpixels(超像素)、Semantic Segmentation(语义分割)、Instance Segmentation(实例分割)、Panoptic Segmentation(全景...

猜你喜欢

leetcode 505 迷宫2

题目:     代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <limits.h> #define MAX_NUM (100 * 100) #define MAX_ROW 100 ...

2021年8月世界编程语言排行

2021年8月TIOBE索引8月标题:数据挖掘和人工智能语言在TIOBE索引中蓬勃发展 数据来源 注意:2021年6月排名见此篇博客 注意:2021年7月排名见此篇博客 智能手机是许多年前的新宠。因此,用于编写移动应用程序的编程语言也变得非常流行。最好的例子是Objective-C,它在TIOBE指数中排名第3,而它只用于为iPhone编写应用程序。如今,我们在数据挖掘和人工智能方面也有同样的优势...

[技术干货] zabbix 监控项-计算公式

zabbix自带的key基本能满足监控需求,但面对现实场景中复杂的监控需求,往往少不了用到zabbix 监控的一种类型-可计算。计算公式可利用现定义好的key进行新的定义,以满足自身监控需求。 1. 现定义好的监控项,如图1. 图1 2. 打算利用现有监控项做一个“/root空闲磁盘的使用比例”的监控项。图2. 图2 自定义上述内容 名称:/root(空闲磁盘空间的比例) ...

通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念、什么是.NET Framework,.NET Core,.NET Standard及一些V...

从0开始转型 数据化运营 系列之「09.用户分群经营」

核心操作框架 一般来讲,用户运营的目的是最大化提升用户价值。用户运营要做的事,其实就是持续引导用户从接触 - 认知 - 体验 - 使用 - 习惯 - 分享 - 上瘾这一系列的转化过程,并通过各类运营手段提升新增、留存、活跃、付费、分享传播。在这其中,有两个工作模块构成了用户运营的核心,一个是用户分层触达体系,另一个是用户成长激励体系。 比如在营销系统中,优惠券有很多种:红包、满减券、限时券,积分券...

问答精选

How to print screen Visual Studio IDE including tooltip/intellisense?

Here is a printscreen of a tooltip/intellisense that is there before and after I hit the printscreen key. Here is a an image from my camera. Have also tried delayed printscreen with count down using 3...

referencing an image from php

I have a function on a website where I have a img reference leading to a php page which I need to return an image and update a database file I figured this would not work as I am referencing a php pag...

Location of entrust roles and permissions code

I am new to Laravel and trying to use enrtust plugin for roles and permissions, but when following the instructions in the documentation, I reached the bit where I have to put the code that creates th...

php mysql inventory

I'm creating an app for a trading card game called Magic: the Gathering and I have made a query that checks all user-submitted decks and gives you the percentage of cards you have in your inventory ov...

How to Email NSManagedObject

I'd like to take data from my iPhone app, and allow users to email it to other users of the app. I have the app data stored as an array of NSManagedObjects in CoreData. What is the best way to take th...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答