集群
MySQL集群
- PXC集群强调读写的一致性,所以适合保存一些关键数据,比如金钱,账户,商品,这些容易产生财务纠纷的数据。
- Replication集群 不强调读写的一致性,所以不适合保存有价值或者关键的数据,它适合处理一些海量且有鲁棒性强的数据,这类数据一般是用做统计类的。比如商品的与客户的喜好关系。
MySQL高可用方案
官方集群的部署方案
- MySQL Replication:主从复制
- MySQL Fabirc:一主多从的结构,MySQL Fabirc只有一个主节点,区别是当该主节点挂了以后,会从从节点中选择一个来当主节点。
- MySQL Cluster:多主多从结构的
第三方
- MMM(Master Replication Manager for MySQL):是双主多从结构,是Google的开源项目
- MHA(Master High Availability):是多主多从结构,是日本DeNA公司的youshimaton开发,
- Galera Cluster:是由Codership开发的MySQL多主结构集群
依托硬件配合
- heartbeat+SAN:SAN:共享存储,主库从库用的一个存储。SAN的概念是允许存储设施和解决器(服务器)之间建立直接的高速连接,通过这种连接实现数据的集中式存储。
- heartbeat+DRDB:DRDB:这是linux内核板块实现的快级别的同步复制技术。通过各主机之间的网络,复制对方磁盘的内容。
其他
- Zookeeper + proxy:Zookeeper使用分布式算法保证集群数据的一致性,使用zookeeper可以有效的保证proxy的高可用性,可以较好的避免网络分区现象的产生。
- Paxos:分布式一致性算法,Paxos 算法处理的问题是一个分布式系统如何就某个值(决议)达成一致。