MySQL数据库集群之PXC方案---PXC简介

如何搭建并使用数据强一致性的MySQL集群?
通常大家熟知的mysql集群采用的是Replication方案,Replication采用的是节点之间异步传输,无法保证数据的一致性,属于弱一致性。Replication事务机制是保证当前节点提交成功,并不保证数据同步成功。
比如下边这种情况,当我们往第一台mysql数据库写入数据,然后提交事务成功,然后因为网络原因这条数据并没有同步到另一个mysql节点,当我们通过读写分离的方式,向第二胎mysql数据库发送读请求的时候,无法读到刚才写入的数据。这就是数据库集群同步采用异步传输呈现出的弱一致性出现的危害。
在这里插入图片描述

本文讲解的PXC方案采用的是数据强一致性,数据的强一致性100%保证往一个节点上写入数据,一定会同步到其余的mysql子节点中。
比如如下图,我们在第一台mysql节点写入数据,本地事务提交成功之后,pxc还要保证每一个mysql节点的事务都提交成功才算成功写入。
像上边写到的数据同步不一致的情况在pxc集群中绝对不会出现。pxc集群才是存储关键数据的最佳方案
在这里插入图片描述

在之后的博客会按下图的架构实现数据库集群
在这里插入图片描述

因为要实现数据库集群,我们需要同时运行多台虚拟机,所以对硬件要求较高。

硬件环境:

  1. cpu: 英特尔i5以上
  2. 内存: 8G内存以上
  3. 硬盘: 100GB闲余空间
    软件环境:
  4. VMWare虚拟机+CentOS7.*
  5. Navicat 或者 DataGrip
  6. JDK1.8 在上图中我们的集群方案里使用了mycat中间件,mycat中间件是基于java的,所以需要jdk环境

我们要搭建的pxc集群是三个pxc节点的集群,我们不能搭建2节点的pxc集群,为了防止脑一半以上的节点无法访问的情况下,集群会自动停止运行,如果我们配置2节点pxc集群,一旦一个节点挂掉了,恰好是一半节点不能访问,那么剩下的节点也无法使用了。这种方式的容灾性特别不好。假设是三个节点pxc集群,即便dangji宕机一个节点,我们还有2个节点可以使用,高可用性会更好一些。pxc集群增加多一些的节点,pxc集群的高可用性会更加好。一定要记住一半以上的节点宕机时pxc集群就无法使用
在这里插入图片描述

MySQL衍生版对比

MySQLMariaDBPercona
版本官方原版社区版企业版
是否收费免费免费免费
是否开源未来可能会闭源(orcale修改过mysql开源的协议,所以以后有可能闭源)继续开源继续开源
负载性能高负载性能不好高负载性能较好高负载性能较好
兼容性兼容性好兼容性一般兼容性好

官方版的mysql数据库开源了源代码,有二次开发能力的企业可以选择mysql官方版二次开发,没有二次开发能力的企业建议使用Percona.
所以在后续的数据库集群PXC方案中的数据库我们采用Percona数据库。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值