首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Cluster 核心架構與節點類型深度解析

     編輯:MySQL 綜合教學

MySQL Cluster 核心概念

NDBCLUSTER(亦稱 NDB)是一種記憶體內存儲引擎,提供高可用性與數據持久化特性。NDB 儲存引擎支援多種故障切換與負載均衡配置,但在集群層面上最容易上手。MySQL Cluster 的 NDB 引擎包含完整的數據集,僅依賴集群內部的其他數據。

集群架構獨立於 MySQL 服務器

MySQL Cluster 的「Cluster」部分是獨立於 MySQL 服務器配置的。在 MySQL Cluster 中,集群的每個組件都被視為一個節點。值得注意的是,在許多語境下「node」指代一台電腦,但在 MySQL Cluster 中它代表一個進程。單台電腦可運行多個節點;運行一個或多個集群節點的電腦稱為集群主機。

三大核心節點類型

最小 MySQL Cluster 配置至少需要三個節點,分別為三種類型各一個:

1. 管理節點

負責管理集群內其他節點,執行提供配置數據、啟動/停止節點、運行備份等功能。由於管理其他節點配置,必須最先啟動。使用 ndb_mgmd 命令啟動。

2. 數據節點

存儲集群數據。數據節點數量等於副本數乘以片段數。例如:兩個副本、每個兩個片段,需四個數據節點。單副本僅提供存儲無冗余,建議使用兩個或更多副本實現高可用性。使用 ndbd 或多線程版 ndbmtd 啟動。

MySQL Cluster 表通常完整存儲於記憶體(因此稱為內存數據庫),但部分數據也可存儲於磁盤(參見 MySQL Cluster Disk Data Tables)。

3. SQL 節點

訪問集群數據的節點。對 MySQL Cluster 而言,SQL 節點是使用 NDBCLUSTER 儲存引擎的傳統 MySQL 服務器。以 mysqld 進程啟動,需指定 --ndbcluster 和 --ndb-connectstring 參數。

SQL 節點實際上是API 節點的特殊類型,指代任何訪問 MySQL Cluster 數據的應用程序。另一個 API 節點範例是 ndb_restore 備份恢復工具。可使用 NDB API 編寫此類應用。

擴展功能:Memcache API

MySQL Cluster 的 Memcache API 實現為可載入的 ndbmemcache 儲存引擎(支援 memcached 1.6+),提供基於 memcache 協議的持久化數據存取。標準 memcached 包含於 MySQL Cluster NDB 7.3 發行版中,每個 memcached 服務器可直接訪問集群數據,亦可本地緩存服務部分請求。

管理客戶端與日誌系統

管理客戶端連接管理服務器,提供節點優雅啟動/停止、訊息追蹤、狀態顯示、備份控制等命令。範例為 ndb_mgm 客戶端。可使用 MGM API(C 語言 API)開發此類應用。

事件日誌分類

MySQL Cluster 按類型(啟動、關機、錯誤、檢查點等)、優先級與嚴重性生成日誌:

  • 集群日誌:記錄整個集群的所有可報告事件
  • 節點日誌:單獨維護每個節點的日誌
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved