MySQL集群方案介绍

  • 单节点数据库的弊病

  1. 大型互联网程序用户群体庞大,所以架构必须要特殊设计

  2. 单节点的数据库无法满足性能上的要求
  3. 单节点的数据库没有冗余设计,无法满足高可用
  • 单节点MySQL的性能瓶领颈

2016年春节微信红包巨大业务量,数据库承受巨大负载

MySQL集群方案介绍_第1张图片

  • 常见MySQL集群方案

MySQL集群方案介绍_第2张图片

  • Replication

  1. 速度快,但仅能保证弱一致性,适用于保存价值不高的数据,比如日志、帖子、新闻等。
  2. 采用master-slave结构,在master写入会同步到slave,能从slave读出;但在slave写入无法同步到master。
  3. 采用异步复制,master写入成功就向客户端返回成功,但是同步slave可能失败,会造成无法从slave读出的结果。
  • PXC (Percona XtraDB Cluster)

  1. 速度慢,但能保证强一致性,适用于保存价值较高的数据,比如订单、客户、支付等。
  2. 数据同步是双向的,在任一节点写入数据,都会同步到其他所有节点,在任何节点上都能同时读写。
  3. 采用同步复制,向任一节点写入数据,只有所有节点都同步成功后,才会向客户端返回成功。事务在所有节点要么同时提交,要么不提交。
  • PXC (Percona XtraDB Cluster)原理

MySQL集群方案介绍_第3张图片

建议PXC使用PerconaServer (Mysql改进版,性能提升很大)

  • PXC方案与Replication方案的对比

MySQL集群方案介绍_第4张图片

MySQL集群方案介绍_第5张图片

  • PXC的数据强一致性

  1. 同步复制,事务在所有集群节点要么同时提交,要么不提交
  2. Replication采用异步复制,无法保证数据的一致性

MySQL集群方案介绍_第6张图片

MySQL集群方案介绍_第7张图片

你可能感兴趣的:(运维)