前置知识: MySQL

NDB-Cluster

00:00
2 min Advanced 2026/6/14

MySQL NDB Cluster集群引擎:分布式架构、数据节点、SQL节点、管理节点与高可用方案

1. NDB Cluster 概述

MySQL NDB Cluster 是 MySQL 的可用、冗余分布式存储引擎,基于 NDB(Network DataBase)存储引擎提供 99.999% 可用性

1.1 核心特性

特性说明
分布式数据自动分片到个数据节点
可用点故障,自动故障转移
事务支持 ACID 事务
内存存储数据主要存储在内存(可溢出到磁盘)
同步复制数据同步复制到节点
在线扩容支持在线添加数据节点

1.2 架构组件

┌──────────────────────────────────────────┐
│              应用层                       │
│    ┌──────┐  ┌──────┐  ┌──────┐         │
│    │ SQL  │  │ SQL  │  │ SQL  │  SQL节点 │
│    │Node 1│  │Node 2│  │Node 3│         │
│    └──┬───┘  └──┬───┘  └──┬───┘         │
│       │         │         │              │
│    ┌──┴─────────┴─────────┴──┐          │
│    │     NDB Cluster 网络     │          │
│    └──┬─────────┬─────────┬──┘          │
│    ┌──┴───┐  ┌──┴───┐  ┌──┴───┐         │
│    │ Data │  │ Data │  │ Data │ 数据节点 │
│    │Node 1│  │Node 2│  │Node 3│         │
│    └──────┘  └──────┘  └──────┘         │
│    ┌──────────────────────────┐          │
│    │     Management Node      │ 管理节点 │
│    └──────────────────────────┘          │
└──────────────────────────────────────────┘

2. 三种节点类型

2.1 管理节点(Management Node)

# config.ini
[ndbd default]
NoOfReplicas = 2
DataMemory = 4G
IndexMemory = 1G

[ndb_mgmd]
NodeId = 1
HostName = mgm-node1

[ndb_mgmd]
NodeId = 2
HostName = mgm-node2

2.2 数据节点(Data Node)

[ndbd]
NodeId = 3
HostName = data-node1
DataDir = /var/lib/mysql-cluster

[ndbd]
NodeId = 4
HostName = data-node2
DataDir = /var/lib/mysql-cluster

2.3 SQL 节点(SQL Node)

[mysqld]
NodeId = 5
HostName = sql-node1

[mysqld]
NodeId = 6
HostName = sql-node2

3. 数据分布

3.1 分片(Partition)

-- NDB Cluster 自动按主键哈希分片
CREATE TABLE orders (
    order_id BIGINT PRIMARY KEY,
    user_id BIGINT,
    amount DECIMAL(10, 2)
) ENGINE = NDB;

-- 指定分区数
CREATE TABLE orders (
    order_id BIGINT PRIMARY KEY,
    user_id BIGINT,
    amount DECIMAL(10, 2)
) ENGINE = NDB PARTITION BY KEY(order_id) PARTITIONS 4;

3.2 副本与可用性

NoOfReplicas = 2 时:
Node Group 0: Data Node 1 (主) + Data Node 2 (备)
Node Group 1: Data Node 3 (主) + Data Node 4 (备)

任一数据节点故障,副本自动接管

4. NDB vs InnoDB

特性NDB ClusterInnoDB
存储内存为主磁盘为主
分布式原生支持中间件
事务支持支持
JOIN 性能较差(网络开销)优秀(本地
外键支持支持
适用场景可用、电信、游戏通用 OLTP

5. 适用场景

  • 电信计费系统(99.999% 可用性
  • 游戏服务器(低延迟读写)
  • 实时会话管理
  • 分布式缓存

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式