本文的將對MySQL Cluster進行簡要介紹:
(一)概述
MySQL cluster是Mysql適用於分布式計算機環境的膏使用、高冗余版本。
Cluster的意思是“集群”,指一組計算機(在某些情況下也只計算機的進程),他們作為一個整體向用戶提供一組網絡資源,其中單個的計算機系統稱作是集群的節點。
一個理想的集群是,用戶從來不會意識到集群系統底層的節點,在用戶看來,集群是一個系統,而不是多個計算機系統。
除此之外,集群的系統管理員可以隨意增加和刪除集群的節點。
集群一般分為以下兩類:
1、高可用集群
致力於提供高度可靠的服務,目的在於減少服務中斷時間。如果某個節點失效,他的冗余節點將在極短的時間內接管他的職責。對於用戶而來,集群永遠不會停機。
分為兩種工作方式:
1)容錯系統:通常是主從服務器方式。只有當主服務器時效,從服務器立刻代替主服務器向客戶提供服務。
2)負載均衡系統:急群眾的所有節點都處於活動狀態,它們分攤系統的工作負擔。
2、高性能計算機群
簡稱HPC集群,目的在於提供單個計算機所不能提供的強大的計算能力。將問題分解為若干分,多節點同時工作,從而縮短解決問題的時間。
(二)層次結構
有3類節點:
1、管理節點,Management Node
是整個集群的控制中心,負責各個節點的增加、杉樹、啟動、停止等。在啟動MySQL Cluster時,必須先啟動管理節點。
啟動命令是ndb_mgmd
2、數據節點,Data Node
用於存放數據。集群中至少要有一個數據節點。有兩個以上的數據節點可保證集群的高可用性。
增加數據節點,會導致集群的處理速度變慢。
啟動命令:ndbd
3、SQL節點
就是普通的mysqld進程,用來訪問Cluster的數據。
增加sql節點可提高整個集群的並發訪問速度和整體的吞吐量
啟動命令:mysqld -ndbCluster
MySQL Cluster的層次結構如下:
Application,代表應用程序,比如:網頁
sql,實質就是mysqld進程,為其他應用程序提供讀取、寫入MySQL數據庫服務的接口。
storage,是存放數據的區域,具有高冗余性。
Management,是整個集群的管理中樞,具有最高的控制權限。