【云原生小课堂】高性能、高可用、可扩展的MySQL集群如何组建?

mysql高可用-PXC集群(安装和特性)
PXC是基于Galera的面向OLTP的多主同步复制插件,mysql自带的主从集群方案(replication)异步复制无法保证主从复制的完整一致。
OLAP强调数据分析和数据挖掘,比较适合MyISAM,OLTP强调事务一致性和增删改查,比较适合InnoDB,而Galara只支持InnoDB,PXC主要用于解决MySQL集群中数据同步强一致性的问题,PXC是MySQL集群方案中公认的优选方案之一。
集群的特点
多主架构:真正的多点读写的集群,没有主从节点之分,在任何节点读写数据,都是最新的
同步复制:事务在所有集群节点同时提交,任何一个节点失败都算作事务失败,这样不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失
强一致性:所有节点的数据保持一致,数据不仅在本地写入,还要同步到所有节点才成功(这种情况下当pxc节点过多时,每个节点都要跟其他节点进行数据同步,节点越多同步关系越复杂,同步效率越慢)
并发复制:从节点APPLY数据时,支持并行执行,更好的性能
故障切换:在出现数据库故障时,因支持多点写入,切换容易
热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小
自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,集群会自动拉取在线节点数据,最终集群会变为一致
对应用透明:集群的维护,对应用程序是透明的
PXC集群的缺点
1、只能对InnoDB写入的数据进行同步,就算在其他引擎写数据,也无法完成同步。
2、新节点加入需要全量拷贝数据,有时会导致数据同步的提供者无法提供读写,只有等待整个拷贝完成
3、集群的性能取决于集群中性能最差的节点的性能(全局校验过程)
4、所有表都要有主键
5、不支持 LOCK TABLE 等显式锁操作
6、PXC 集群节点越多,数据同步的速度就越慢
安装pxc集群
删除MariaDB程序包

开放防火墙端口

3306(mysql服务端口):对外提供mysql的服务端口 4567(集群通讯端口):集群中mysql节点间通信的端口 4444 (SST(State Snaphot Transfer)端口):请求全量同步端口 4568(IST(Incremental State Transfer)端口):请求增量同步的端口
关闭SELINUX

在所有节点下载并安装pxc
下载安装包
https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/

下载以上安装包后额外需要下载qpress-11-1.el7.x86_64包。
进入RPM文件目录,执行安装命令

修改配置文件

初始化所有节点的mysql

停止所有节点的mysql并构建数据库集群

验证
在任何一个节点的mysql执行以下sql可以查看集群状态:

ADS试用咨询
众所周知,PXC是MySQL实现高可用架构的优选方案,而MySQL是基于Kubernetes数据服务管理的最佳实践,灵雀云数据服务平台Alauda Data Service(简称:ADS)采用MySQL等主流数据组件,完整覆盖全生命周期管理,作为Alauda全栈云的重要一环,与灵雀云云原生全栈私有云平台ACP完美集成,提供集部署、使用、运维一体的稳定可靠的中间件PaaS服务,快速实现一键部署、便捷管理、自动化运维,让开发运维人员可以更关注于业务本身。
如您想深入体验ADS,扫描下方二维码即可报名。

关于【云原生小课堂】

【云原生小课堂】是由灵雀云、Kube-OVN社区、云原生技术社区联合开设的公益性技术分享类专题,将以丰富详实的精品内容和灵活多样的呈现形式,持续为您分享云原生前沿技术,带您了解更多云原生实践干货。
在数字化转型的背景下,云原生已经成为企业创新发展的核心驱动力。作为国内最早将 Kubernetes 产品化的厂商之一,灵雀云从出生便携带“云原生基因”,致力于通过革命性的技术帮助企业完成数字化转型,我们期待着云原生给这个世界带来更多改变。
关注我们,学习更多云原生知识,一起让改变发生。
【云原生小课堂】高性能、高可用、可扩展的MySQL集群如何组建?的更多相关文章
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- 高可用,多路冗余GFS2集群文件系统搭建详解
高可用,多路冗余GFS2集群文件系统搭建详解 2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群 ...
- 华为云:实现高可用的负载均衡web集群
华为云: 2台云主机做负载均衡调度 >>申请一个虚拟浮动ip,并绑定一个弹性公网ip >>将两台云主机绑定到虚拟浮动ip上 3台web服务器 1台云服务器做jumpserver ...
- 高可用Hadoop平台-HBase集群搭建
1.概述 今天补充一篇HBase集群的搭建,这个是高可用系列遗漏的一篇博客,今天抽时间补上,今天给大家介绍的主要内容目录如下所示: 基础软件的准备 HBase介绍 HBase集群搭建 单点问题验证 截 ...
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- 使用kubeadm搭建高可用k8s v1.16.3集群
目录 1.部署环境说明 2.集群架构及部署准备工作 2.1.集群架构说明 2.2.修改hosts及hostname 2.3.其他准备 3.部署keepalived 3.1.安装 3.2.配置 3.3. ...
- 使用Nginx+Keepalived组建高可用负载平衡Web server集群
一,首先说明一下网络拓扑结构: 1,Nginx 反向代理Server(HA): ①Nginx master:192.168.1.157 ②Nginx backup:192.168.1. ...
- Centos7使用kubeadm 安装多主高可用kubernets:v.1.11集群
实验环境介绍: 本次实验环境是5个节点 3台master 2台node节点: k8smaster01 192.168.111.128 软件:etcd k8smaster haproxy keepali ...
- Sentry(v20.12.1) K8S 云原生架构探索,玩转前/后端监控与事件日志大数据分析,高性能+高可用+可扩展+可伸缩集群部署
Sentry 算是目前开源界集错误监控,日志打点上报,事件数据实时分析最好用的软件了,没有之一.将它部署到 Kubernetes,再搭配它本身自带的利用 Clickhouse (大数据实时分析引擎)构 ...
随机推荐
- jdbc.properties/(驱动、URL、用户名、密码)跟换数据库时改该配置文件/Untitled Text File格式
背景:这几天从阿里云上面购买了云服务器,最垃圾的那种,还送oss和EDS数据库服务器,只不过EDS数据库服务器只有一个月的,就主动升级为一年的,49还是59忘了.对于配置这种EDS过程中,产生的一个念 ...
- Activemq持久化之kahadb特性
介绍数据的持久化是很多系统都会涉及到的一个问题,尤其是redis,activemq这些数据主要是存储在内存中的.既然存在内存中,就会面临宕机时数据丢失的风险.这一问题的解决方案就是通过某种方式将数据写 ...
- ORM,Django对数据库的连接和使用
ORM,Django对数据库连接和使用数据 ORM(对象关系映射) 很多语言中的web框架都有这个概念 为什么要有ORM? 写程序离不开数据 新的语法,不需要我们自己写SQL语句 我们按照新的语法写代 ...
- linux内存(一) 内核空间与用户空间
来自如下网站 https://www.cnblogs.com/sparkdev/p/8410350.html 内核空间和用户空间 对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间 ...
- python练习册 每天一个小程序 第0000题
PIL库学习链接:http://blog.csdn.net/column/details/pythonpil.html?&page=1 1 #-*-coding:utf-8-*- 2 __au ...
- C++ 并发编程1
一个简单的并发编程的举例 #include <iostream> #include <thread> using namespace std; void hello(){ co ...
- 什么是 CSRF 攻击?
CSRF 代表跨站请求伪造.这是一种攻击,迫使最终用户在当前通过身份验证的 Web 应用程序上执行不需要的操作.CSRF 攻击专门针对状态改变请求,而不是 数据窃取,因为攻击者无法查看对伪造请求的响应 ...
- spring 支持哪些 ORM 框架 ?
Hibernate iBatis JPA JDO OJB
- Java 中能创建 volatile 数组吗?
能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不 是整个数组.我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护, 但是如果多个线程同时改变数 ...
- django REST框架- Django-ninja
Django 是我学习的最早的web框架,大概在2014年,当时选他原因也很简单就是网上资料比较丰富,自然是遇到问题更容易找答案,直到 2018年真正开始拿django做项目,才对他有了更全面的了解. ...