MySQL Cluster 是一種通過「無共享」架構部署「內存中」數據庫集群的技術。它將標準 MySQL Server 與 NDB(Network Database)內存集群存儲引擎深度整合,利用廉價商用硬件即可構建無單點故障、高可用、高性能的分布式數據庫系統。本文系統介紹 MySQL Cluster 核心概念、三大節點角色、架構關係及部署規劃指引。
集群中每個進程視為一個「節點」,單台物理機可運行多個不同角色節點(稱為「集群主機」)。最小配置需三類節點:
| 節點類型 | 角色職責 | 啟動命令 | 關鍵特性 |
|---|---|---|---|
| 管理節點 (MGM) | 管理集群配置、啟停節點、執行備份、提供配置數據分發點 | ndb_mgmd (管理進程)ndb_mgm (管理客戶端) |
**必須最先啟動**,其他節點啟動時向其請求配置 |
| 數據節點 (NDB) | 存儲集群數據、處理事務、執行查詢下推、維護索引 | ndbd 或 ndbmtd (多線程版) |
數量 = 副本數 × 片段數。如 2 副本 × 2 片段 = 4 數據節點。至少 1 副本 |
| SQL 節點 | 對外提供 MySQL 協議服務、解析優化 SQL、向數據節點分發請求、返回結果 | mysqld --ndbcluster 或 my.cnf 添加 ndbcluster |
傳統 MySQL Server 掛載 NDB 引擎,應用透明訪問 |

圖示關係:
config.ini),由管理節點加載分發。ndb_mgm 提供實時狀態查看:SHOW、ALL STATUS、DUMP 等命令。作者規劃 5 節點集群,使用 3 台物理機(SQL 節點與數據節點共置):
| 物理機 | IP/主機名 | 運行節點 |
|---|---|---|
| Node 1 | 192.168.1.10 / mgm1 | 管理節點 (MGM) + SQL 節點 1 |
| Node 2 | 192.168.1.11 / data1 | 數據節點 1 (NDB) + SQL 節點 2 |
| Node 3 | 192.168.1.12 / data2 | 數據節點 2 (NDB) + SQL 節點 3 |
該拓撲滿足:1 MGM + 2 NDB (1 副本 × 2 片段或 2 副本 × 1 片段) + 3 SQL 節點,具備高可用基礎。
適用: 高併發、低延遲、強一致、數據量可控(內存成本敏感)、可接受運維複雜度的核心業務。
局限: 內存成本高、大事務性能弱、跨節點 JOIN 性能差、運維門檻高、生態工具較標準 MySQL 少。
config.ini 關鍵參數:NoOfReplicas、DataMemory/IndexMemory、MaxNoOfConcurrentOperations 等MySQL Cluster 代表了 MySQL 生態中最高階的分布式能力,掌握它意味著具備了構建電信級數據基礎設施的核心技術棧。