数据库技术专题我爱编程

MySQL集群方案分析

2018-05-23  本文已影响31人  靈08_1024

由于高并发和分布式的兴起,使得MySQL数据库单节点已经不能满足生产日常的要求了。所以就有了MySQL集群的搭建。

针对于常用的MySQL集群,主要有PXC和RP两种模式。本篇主要以理论为主。

PXC

全写Percona XtraDB Cluster。通过MySQL自带的一种集群技术——Galera将不同的MySQL连接起来,形成多主集群。


PXC模式.png

其事务的执行时序图为:


PXC事务时序图.png

以上是以3节点为例,具体步骤:

  1. 客户端写入到数据库DB1,返回结果,但此时并未持久化;
  2. 客户端提交事务到DB1;
  3. DB1将数据复制给PXC,然后由PXC分别复制给DB2,DB3;
  4. 由PXC生成GTID,在DB2,DB3分别执行GTID并返回执行结果;
  5. 4返回无问题,在DB1中执行GTID,返回最终事务结果。4有问题直接返回事务失败结果。

ps:

  1. 在PXC中,生成的ID有可能是不连续的,如果期望连续就需要将ID生成策略提高一级,比如放在数据切分中间件中,如mycat等。或者在程序中执行ID的赋予问题。
    在赋予ID时需要考虑到后期可能迁徙数据库的问题。
  2. PXC集群数量建议为奇数,防止脑裂。

RP

RP即Replication,主从复制。即只能从主到从进行同步。采用主写副读,只有主节点有事务。(从节点即副节点)


RP模式.png

ps:RP方式,如果主节点没有同步到从节点,会出现数据不一致性。

PXC和RP比较

PXC RP
同步方式 同步 异步
主节点数量 全部都是 只有1个
同步方向 互相同步 只能主到从
读写关系 全部读写 主写副读
是否有事务 所有节点都有 主节点有
强一致性
执行效率
适用场景 订单、红包等贵重功能 通知、日志等次要功能

HAproxy高可用方案

HAproxy是可以支持TCP/IP协议的负载均衡方案。程序接入到HA数据源,由HAproxy来分发任务。

上一篇下一篇

猜你喜欢

热点阅读