mysql cluster是基于ndb存储引擎。
整体分为三大部分,管理节点,存储节点,sql节点。
管理节点用于管理整个集群;存储节点及ndb节点,用来存储数据;sql节点则负责接收客户端的sql请求。
mysql cluster 特性如下
性能和扩展能力 | |
自动分片 | 数据库自动、透明地分布于低成本的商用服務器上,这样无需更改应用程序即可以向外扩展的方式增加读写查询的能量。 |
多主复制 | 每个数据节点都可以接受写操作。这项功能与自动分片功能相结合,提供了非常高的写操作扩展能力。 |
分布式跨分片 JOIN | 适应性查询本地化将 JOIN 操作下放到数据节点,这样它们就可以并行地在多个本地数据副本上执行。 |
实时响应 | 内存中的表和索引异步刷新到磁盘并绑定到 CPU 线程,低延迟。 |
开发人员 API 和数据模型 | |
SQL | MySQL Server 针对集群提供一个标准的 SQL 接口,可通过所有标准 MySQL 连接器(如 JDBC、ODBC.NET 等)连接各种 Web 开发语言和框架。 |
使用 Memcached 的 NoSQL | 原生键值访问,绕过 SQL 层访问 存於數据節點中的數据,用于结构和非结构的数据存储。 |
使用 JavaScript 和 node.js 的 NoSQL | 支持通过服务器端JavaScript绕过 SQL 层直接访问存于数据节点中的数据,以加速数据的查询和维护 |
使用 C++ 的 NoSQL | 原生 C++ 访问,绕过 SQL 层可获得极低的延迟 |
使用 Java 和 JPA 的 NoSQL | 原生 Java 和 JPA 访问,绕过 SQL 层访问企业、Web 和电信服务 |
使用 REST 的 NoSQL | 原生 HTTP/REST 访问,使用 Apache mod_ndb 绕过 SQL 层 |
结构和非结构式的数据模型 | 默认使用完全结构化的关系数据模型。使用 Memcached API,每个键值都写入相同的表中,每个键值对默认存储在一行中,也可以配置为写入多个现有表中。 |
99.999% 的可用性和数据完整性 | |
符合 ACID 要求、事务型 | MySQL Cluster 全面支持 ACID(独立性、一致性、隔离性、持久性)事务。 |
外键约束(Constraint) | MySQL Cluster 自动在表间实施参照完整性。 |
分布式、无共享架构 | 集群中的每个节点都是冗余的,可以放在单独的主机上,从而确保在发生进程、硬件或网络故障时的持续可用性。 |
无单点故障 | 每个节点都有自己的磁盘和内存,因此消除了共享组件(如存储)带来的故障风险。 |
同步复制 | 每个数据节点内的数据都同步复制到至少一个其他节点上。如果某个节点发生故障,至少有另一个数据节点存储着相同的信息。 |
亚秒级自动故障切换 | MySQL Cluster 的心跳机制可立即检测到任何故障,并自动故障切换到集群中的其他节点,通常在一秒钟内完成,不会中断提供给客户端的服务。 |
自我修复式恢复 | 故障节点能自动重新启动并在重新加入集群前与其他节点重新同步,从而实现自我修复,此过程对应用程序完全透明。 |
跨地域复制 | 将一个集群从一个数据中心复制到另一个数据中心,从而实现灾难恢复并降低网络延迟的影响。每个集群都能接受写操作,并在内部处理冲突,从而确保集群间的一致性。 |
多站点集群 | 数据节点可以分散到多个数据中心,因此发生节点故障时可以在不同站点之间同步复制并进行自动故障切换。 |
联机操作 | |
联机模式更新 | 支持联机添加列和表,以及联机添加和删除索引。 |
联机扩展 | 可以按需向正在运行的集群添加节点以提高性能和容量。可以向集群中动态添加应用节点,也可以从集群中动态删除应用节点,非常灵活。 |
联机维护 | 支持在线对底层硬件、操作系统和 MySQL Cluster 进程的升级和补丁安装。 |
联机备份 | 备份文件是数据库的一致的集群范围快照,可以存档并复制到安全的远程位置。 |
部署灵活性 | |
虚拟机部署 | 可以在内部平台和云平台上部署虚拟机环境。 |
内存中和基于磁盘的表 | 表可以配置为只能在内存中管理(完全记录并刷新到到持久存储中)或存储在磁盘上。 |
商用硬件 | 可以用本地存储在商用硬件间扩展 MySQL Cluster。无需共享磁盘。 |
安全和审计 | |
MySQL 企业级安全性* | 为连接到集群的 MySQL Server 提供了随时可用的外部身份验证模块,使其可以轻松集成到现有安全基础架构中。 |
MySQL 企业级审计* | 提供了一个简单易用、基于策略的审计解决方案,可帮助组织实施更加严格的安全控制和满足法规要求。 |
管理和监视 | |
MySQL Cluster Manager* | MySQL Cluster Manager 可自动完成常见管理任务,从而简化了 MySQL Cluster 数据库的创建和管理。 |
MySQL Enterprise Monitor* | 使您能够了解集群运行状况的概况,在潜在问题对系统造成影响前发出警报。 |
* 仅在 MySQL Cluster 运营商级版本中提供。
注意事项:
1、主键和索引存储在内存: 每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
问题:
1、因主键和索引存储在内存,当内存没有足够的容量容纳时,就会出问题。
2、使用较少
3、文档和参考资料
4、有问题不易修改
5、占用磁盘空间大,内存大
时间: 2024-11-02 09:55:40