文章目录
- 1.简介
- 2.组成
- 参考文献
1.简介
MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。
以下是 MySQL NDB Cluster 的主要特点和能力:
- 高可用:MySQL Cluster 具有内置的高可用性功能,可以自动检测和恢复故障。它支持故障检测和节点恢复,以确保集群中的数据和服务可用性。
- 分布式存储:NDB 存储引擎支持将数据分布在多个节点上,实现了数据的分布式存储。这意味着数据可以水平扩展,从而提高了存储容量和性能。
- 实时处理:MySQL Cluster 旨在支持实时数据处理,特别适用于需要低延迟和高吞吐量的应用程序,如电信、在线游戏和金融领域。
- 自动分区:NDB 存储引擎支持自动分区,可以根据数据分布自动将数据分割成多个分区,以实现负载均衡和高性能。
- 动态扩展:MySQL Cluster 支持动态添加和删除节点,因此可以根据需求扩展集群。
- 事务支持:MySQL Cluster 支持 ACID(原子性、一致性、隔离性和持久性)事务,确保数据的一致性和可靠性。
- 并行查询:NDB 存储引擎支持并行查询,允许同时执行多个查询以提高性能。
- 多地域复制:MySQL Cluster 支持跨地域的数据复制,使数据在不同地理位置之间进行同步,以提高数据冗余和可用性。
2.组成
一个 MySQL Cluster 主要由以下三部分组成:
- SQL Node
SQL 节点主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,Query 优化和响应 ,Cache 管理等等,只有存储层的工作交给了 NDB 数据节点去处理了。也就是说,在 MySQL Cluster 环境中的 SQL 节点,可以被认为是一个不需要提供任何存储引擎的 MySQL 服务器,因为他的存储引擎由 NDB 节点担任。
- Management Node
管理节点的作用是管理集群中的其他节点,执行提供配置数据、启动和停止节点以及运行备份等功能。因为这种类型的节点管理其他节点的配置,所以应该首先启动这种类型的节点,然后再启动任何其他节点。使用命令 ndb_mgmd 启动管理节点。
- Data Node
数据节点主要实现底层数据存储功能。每一个数据节点保存完整数据的一个 fragment,也就是一个数据分片(或者一份完整的数据,视节点数目和配置而定),所以只要配置得当,MySQL Cluster 在存储层不会出现单点的问题。使用命令 ndbd 或 ndbmtd 启动数据节点。
下面是一幅 MySQL Cluster 的基本架构图(出自 MySQL 官方参考手册):
参考文献
Chapter 23, MySQL NDB Cluster 8.0