MySQL cluster是专门用来做MySQL集群的程序,允许在无共享的系统中部署“内存中”数据库的 Cluster 。在软件中,Cluster的每个部分都会列为一个节点,而最实用的则是管理(MGM)节点。该节点的作用就是管理里面的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于MGM节点主要负责管理其他节点的配置,所以应在启动其他节点之前首先启动这类节点。
组成部分
1、负载均衡节点(mysql)
负载均衡节点(也叫SQL节点)是用来访问集群数据的。相关的软件,就是我们平时所使用的MySQL数据库软件;也就是由/etc/init.d/mysql脚本来管理的那个服务。
2、存储节点(ndbd)
数据存储节点是用来保存集群数据的,其服务的启停是由脚本/etc/init.d/mysql-ndb来管理的。
3、管理节点(ndbd-mgm)
管理节点是用来管理集群内其他节点的,比如提供配置信息、启动或停止节点、执行备份等。其服务的启停是由/etc/init.d/mysql-ndb-mgm脚本来管理的。由于这类节点是管理者,所以管理节点必须首先启动,然后其他两类节点再启动。
优点缺点
一、优点:
1、99.999 %的高可用性
2、快速的自动失效切换
3、灵活的分布式体系结构,没有单点故障
4、高吞吐量和低延迟
5、可扩展性强,支持在线扩容
二、缺点:
1、存在很多限制,比如:不支持外键,数据行不能超过8K(不包括BLOB和text中的数据)
2、部署、管理、配置很复杂
3、占用磁盘空间大,内存大
4、备份和恢复不方便
5、复杂的sql查询性能一般
主要结构
1、管理(MGM)节点:
这类节点的作用是管理MySQLCluster内的其他节点,如提供配 置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启 动这类节点。MGM节点是用命令“ndb_mgmd”启动的。对硬件没什么要求,差一点的机器完全能够胜任。默认端口1186。
2、数据节点:
这类节点用于保存Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。可以选择大内存,cpu也相对来讲不错的,尤其是以后ndbmtd对多核Cpu的支持。默认端口2202
3、SQL节点:
这是用来访问Cluster数据的节点。对于MySQLCluster,客户端节点是使用NDBCluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld–ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。对cpu要求较高,选择多核,高频CPU较好。
新增功能
v8.0.11(2019-08-11)
1、更强内存性能和可扩展性:
根据SysBench标准,MySQL Cluster 7.4在只读工作负载上的性能比 7.3版本提高了近50%,读写操作性能也提高了40%。性能改进可通过SQL或任何由MySQL Cluster支持的本地NoSQL 应用程序接口得到实现,包括Java, C++,HTTP, Memcached和JavaScript/node.js。此外,7.4版本的还创造了新纪录,即通过32个数据节点实现每秒2亿条NoSQL查询,以及通过 16个数据节点每秒查询近250万SQL语句
2、改进的工作负载效率分析:
现在,用户可以在MySQL 集群上使用相同的记忆优化表高效运行涉及复杂分析和随机搜索的应用负载,这为OLTP工作负载提供了亚毫秒级别的超低延迟和高水平的并发性能。这些内存表可以和基于磁盘的表共同使用
3、新的跨地域冗余功能实现跨数据中心的高可用性:
最新版本提供冲突性事务传回功能,并能在跨地域集群之间实现灵活可用、即时更新的复制功能,使得应用可以自由向任意站点发送查询或写入命令,同时完全不影响一致性
4、高级管理功能:
MySQL Cluster为内部部署和基于云的部署提供了以下改进:
新的分布式内存使用和数据库操作报告,提高管理效率;
其他性能调优选项;
更快的网络维护操作,包括软件升级速度提高多达5倍
点击星星用来评分