一、数据库集群方案选择
传统单机的MySQL数据库存在服务单点问题,一旦数据库或数据库所在的服务器节点故障或宕机,那整个应用就会瘫痪,这种故障引起的服务间断,将给客户形成不可估量的损失。因此需要对数据库进行服务集群搭建,避免单点运行。
MySQL集群的方案主要基于主从复制的同步及其衍生的集群架构,是基于异步方式的数据同步,这种方式存在异步同步延时,主从节点可能会存在数据不一致的情况,当主节点宕机,一般就要人工来介入处理,一般适合于读写分离、数据联机备份,且对交易数据实时性和安全性要求不是非常苛刻的场合。而在金融交易类领域,建议选择更加安全的同步复制,具备事务强一致性的集群方式——PXC集群。
PXC (Percona XtraDB Cluster)是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比,PXC最突出特点就是解决了诟病已久的数据复制延迟问题,基本可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性。
如下图为3节点PXC集群:
PXC特性和优点:
- 完全兼容 MySQL。
- 同步复制,事务要么在所有节点提交或不提交。
- 多主复制,可以在任意节点进行写操作。
- 在从服务器上并行应用事件,真正意义上的并行复制。
- 节点自动配置,数据一致性,不再是异步复制。
- 故障切换:因为支持多点写入,所以在出现数据库故障时可以很容易的进行故障切换。
- 自动节点克隆:在新增节点或停机维护时,增量数据或基础数据不需要人工手动备份提供,集群会自动拉取在线节点数据,集群最终会变为一致;
PXC最大的优势:强一致性、无同步延迟。
二、具体方案部署说明
由于涉及到数据库服务集群,所以建议采用多点部署,可选方案如下:
- 单台服务器构建伪集群
- 多台实体硬件服务器节点构建集群
- 多台虚拟机节点服务器节点构建集群
按照PXC的故障节点仲裁机制,建议数据库服务节点为3个,可以实现最大2节点宕机的高可用,同时又兼顾了节点同步通信效率。
方案1:单台服务器构建集群
本方案就是在单台硬件服务器上安装3个虚拟机节点部署数据库集群,该方案主要针对项目资源有限的情况。服务器需配备Raid5或Raid 0+1磁盘阵列,以保证磁盘数据的冗余。
方案2:多台实体硬件服务器节点构建集群
投入3台硬件实体服务器构建集群,这种方式硬件成本高一些。
方案3:多台虚拟机节点服务器节点构建集群
通过实体服务器超融合虚拟化等技术,虚拟出3台服务器虚拟节点,本方案兼具了经济性和服务保障性。
实体服务器配置:
最低:双核/16G/300GB
理想:四核/32G/500GB