了解MySQLCluster
主流MySQL集群框架对比
主从复制框架MHA
Master High Availability Manager and Tools for MySQL
日本专家采用Perl语言编写
目的:维持Master主库的高可用性及数据的一致性
特点:可以修复多个Slave之间的差异日志,使所有Slave保持数据一致,然后从中选择一个Slave数据库作为新的Maser,并将其它Slave指向它。当Master故障时,MHA会从多个Slave中随机选择一个充当新的Master(也可配置)。
原理:
1.在MHA架构中读写分离,最佳实践是在应用开发设计时提前规划读写分离事宜,在使用时设置两个连接池,即读连接池和写连接池,也可选择折中方案即引入SQL Proxy;
2.关于读负载均衡可以使用F5、LVS、HAPROXY或者SQL Proxy等工具,只要能够实现负载均衡、故障检查和备升级为主后的读写剥离更能即可,建议使用LVS;
3.MHA Manager Node主要负责主库在crash时将bin log完整同步到slave库、监控主备库的状态及切换
官方集群框架MySQLCluster
无共享存储的数据存储模式,实现了数据在集群中的实时同步及数据库节点故障对应用的透明性。
保证数据库系统99.999%的可用性
原理:
1.关于读、写负载均衡可以使用F5、LVS、HAPROXY或者其他SQL Proxy等工具,只要能实现负载均衡、故障检查即可。
2.同事支持Cluster和Sharding功能,一般根据实际进行设计表。
3.做Sharding的表一般需要使用NDB Cluster存储引擎。
4.MGM节点:租用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等,其本身产生故障不会影响MySQL Cluster。
5.SQL节点:用来访问Cluster数据的节点
6.NDB节点:用于保存Cluster的数据
7.MySQL Cluster支持集群到集群之间的实时同步,粒度可细致行级别,可实现夸数据中心部署。
开源分布式方案Cobar
阿里巴巴B2B 关系型数据的分布式处理系统,可以在分布式环境下像传统数据库一样提供海量数据服务。
功能:
1.Cobar支持将一张表水平拆分成为多份分别放入不同的库来实现表的水平拆分。
2.支持将不同的表放入不同的库
3.两种方式混搭使用
4.Codar可以自动向后端链接MySQL发哦少年宫心跳,判断MySQL运行状态,一旦异常,可制动切换到备用机工作。
原理:
1.支持Cluster集群功能合Sharding数据切片功能,一般根据实际需要会采用混搭方式;
2.实现了对应用请求的负载均衡、后端节点的健康检查、SQL切分及查询结果集的聚合等功能;
3.MySQL主备库应该设置为主双向同步方式即需将MySQL M01与MySQL S01设置成主主同步模式。
mysql cluster 概念
节点
- 管理节点:mysql cluster管理节点负责管理、配置、监控整个集群
- 数据节点:使用内存存放数据,保存进数据节点的数据都会自动复制并存储到其他数据节点
- mysql节点:也叫数据库节点,和平时mysql相同,作为数据库使用,被数据节点访问
架构图
1.最好将数据节点的Mysql节点分开
2.负载均衡服务器需要备份 备份参考文档 HAProxy实现mysql负载均衡