共计 1643 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容介绍了“MySQL 集群架构优劣势有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、主从复制架构 MHA
MHA 即 Master High Availability Manager and Tools for MySQL,是日本的一位 MySQL 专家采用 Perl 语言编写的一个 MySQL 高可用管理工具,目的在于维持 Master 主库的高可用性及数据的一致性。
MHA 目前在 MySQL 高可用方面是一个相对成熟的解决方案且在大量的企业得到广泛使用。其最大特点是可以修复多个 Slave 之间的差异日志,最终使所有 Slave 保持数据一致,然后从中选择一个 Slave 数据库作为新的 Master,并将其它 Slave 指向它。
当 Master 故障时,MHA 会从多个 Slave 中随机选择一个充当新的 Master,也可在配置文件中指定某一个 Slave 优先成为 Master。
其架构如下,请参考:
对上图做如下简单解释,请参考:
1. 在 MHA 架构中读写分离,最佳实践是在应用开发设计时提前规划读写分离事宜,在使用时设置两个连接池,即读连接池与写连接池,也可以选择折中方案即引入 SQL Proxy;
2. 关于读负载均衡可以使用 F5、LVS、HAPROXY 或者 SQL Proxy 等工具,只要能实现负载均衡、故障检查及备升级为主后的读写剥离功能即可,建议使用 LVS;
3.MHA Manager Node 主要负责主库在 crash 时将 bin log 完整同步到 slave 库、监控主备库的状态及切换。
二、官方集群 MySQLCluster 架构
MySQL Cluster 是 Oracle 官方提供的一种企业级解决方案。其采用了无共享存储的数据存储模式,真正实现了数据在集群中的实时同步及数据库节点故障对应用的透明性。官方承诺 MySQL Cluster 可以保证数据库系统 99.999% 的可用性。
对上图做如下简单解释,请参考:
1. 关于读、写负载均衡可以使用 F5、LVS、HAPROXY 或则其他 SQL Proxy 等工具,只要能实现负载均衡、故障检查即可;
2. MySQL Cluster 同时支持 Cluster 和 Sharding 功能,一般根据实际需要进行设计表;
3. 做 Sharding 的表一般需要使用 NDB Cluster 存储引擎;
4.MGM 节点: 作用是管理 MySQL Cluster 内的其他节点,如提供配置数据、启动并停止节点、运行备份等,其本身产生故障不会影响 MySQL Cluster;
5.SQL 节点: 用来访问 Cluster 数据的节点;
6.NDB 节点: 用于保存 Cluster 的数据;
7.MySQL Cluster 支持集群到集群之间的实时同步,粒度可细致到行级别,可实现夸数据中心部署。
三、开源分布式方案 Cobar
Cobar 是阿里巴巴 B2B 部门开发的一种关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。Cobar 的主要功能如下:
1. Cobar 支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分;
2. Cobar 也支持将不同的表放入不同的库;
3. 多数情况下,会将以上两种方式混搭使用;
4. Cobar 可以自动向后端连接的 MySQL 发送心跳,判断 MySQL 运行状况,一旦运行出现异常,Cobar 可以自动切换到备机工作。
对上图做如下简单解释,请参考:
1.Cobar 同时支持 Cluster 集群功能和 Sharding 数据切片功能,一般根据实际需要会采用混搭的方式;
2.Cobar 实现了对应用请求的负载均衡、后端节点的健康检查、SQL 切分及查询结果集的聚合等功能;
3.MySQL 主备库应设置成主主双向同步方式即须将 MySQL M01 与 MySQL S01 设置成主主同步模式。
“MySQL 集群架构优劣势有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!