MySQL集群方案分析

由于高并发和分布式的兴起,使得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来分发任务。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容