時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
在為某證券公司設(shè)計其OA架構(gòu)時,初期客戶是30萬用戶在線;然而在項目實施中,客戶又提出50萬用戶同時在線的需求,而且都有寫的需求;這樣初始的設(shè)計master-master-slave,讀寫分離滿足不了客戶的要求,所以我們打算采用mysql Cluster方案;MySQL Cluster 是MySQL適合于分布式計算環(huán)境的高實用、高冗余版本。它采用了NDB Cluster 存儲引擎,允許在1個Cluster中運行多個MySQL服務(wù)器。在MyQL 5.0及以上的二進制版本中、以及與最新的Linux版本兼容的RPM中提供了該存儲引擎。
一、MySQL Cluster概述
MySQL Cluster 是一種技術(shù),該技術(shù)允許在無共享的系統(tǒng)中部署"內(nèi)存中"數(shù)據(jù)庫的 Cluster 。通過無共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內(nèi)存和磁盤,不存在單點故障。
MySQL Cluster 由一組計算機構(gòu)成,每臺計算機上均運行著多種進程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點,管理服務(wù)器,以及(可能)專門的數(shù)據(jù)訪問程序。
所有的這些節(jié)點構(gòu)成一個完成的MySQL集群體系。數(shù)據(jù)保存在"NDB存儲服務(wù)器"的存儲引擎中,表(結(jié)構(gòu))則保存在"MySQL服務(wù)器"中。應(yīng)用程序通過"MySQL服務(wù)器"訪問這些數(shù)據(jù)表,集群管理服務(wù)器通過管理工具(ndb_mgmd)來管理"NDB存儲服務(wù)器"。
通過將MySQL Cluster 引入開放源碼世界,MySQL為所有需要它的人員提供了具有高可用性、高性能和可縮放性的 Cluster 數(shù)據(jù)管理。
二、MySQL Cluster 基本概念
"NDB" 是一種"內(nèi)存中"的存儲引擎,它具有可用性高和數(shù)據(jù)一致性好的特點。
MySQL Cluster 能夠使用多種故障切換和負載平衡選項配置NDB存儲引擎,但在 Cluster 級別上的存儲引擎上做這個最簡單。MySQL Cluster的NDB存儲引擎包含完整的數(shù)據(jù)集,僅取決于 Cluster本身內(nèi)的其他數(shù)據(jù)。
目前,MySQL Cluster的 Cluster部分可獨立于MySQL服務(wù)器進行配置。在MySQL Cluster中, Cluster的每個部分被視為1個節(jié)點。
管理(MGM)節(jié)點:這類節(jié)點的作用是管理MySQL Cluster內(nèi)的其他節(jié)點,如提供配置數(shù)據(jù)、啟動并停止節(jié)點、運行備份等。由于這類節(jié)點負責(zé)管理其他節(jié)點的配置,應(yīng)在啟動其他節(jié)點之前首先啟動這類節(jié)點。MGM節(jié)點是用命令"ndb_mgmd"啟動的。
數(shù)據(jù)節(jié)點:這類節(jié)點用于保存 Cluster的數(shù)據(jù)。數(shù)據(jù)節(jié)點的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對于兩個副本,每個副本有兩個片段,那么就有4個數(shù)據(jù)節(jié)點。不過沒有必要設(shè)置多個副本。數(shù)據(jù)節(jié)點是用命令"ndbd"啟動的。
SQL節(jié)點:這是用來訪問 Cluster數(shù)據(jù)的節(jié)點。對于MySQL Cluster,客戶端節(jié)點是使用NDB Cluster存儲引擎的傳統(tǒng)MySQL服務(wù)器。通常,SQL節(jié)點是使用命令"mysqld –ndbcluster"啟動的,或?qū)?quot;ndbcluster"添加到"my.cnf"后使用"mysqld"啟動。
注釋:在很多情況下,術(shù)語"節(jié)點"用于指計算機,但在討論MySQL Cluster時,它表示的是進程。在單臺計算機上可以有任意數(shù)目的節(jié)點,為此,我們采用術(shù)語" Cluster主機"。
管理服務(wù)器(MGM節(jié)點)負責(zé)管理 Cluster配置文件和 Cluster日志。 Cluster中的每個節(jié)點從管理服務(wù)器檢索配置數(shù)據(jù),并請求確定管理服務(wù)器所在位置的方式。當(dāng)數(shù)據(jù)節(jié)點內(nèi)出現(xiàn)新的事件時,節(jié)點將關(guān)于這類事件的信息傳輸?shù)焦芾矸⻊?wù)器,然后,將這類信息寫入 Cluster日志。
此外,可以有任意數(shù)目的 Cluster客戶端進程或應(yīng)用程序。它們分為兩種類型:
標準MySQL客戶端:對于MySQL Cluster,它們與標準的(非 Cluster類)MySQL沒有區(qū)別。換句話講,能夠從用php、Perl、C、C++、java、python、Ruby等編寫的現(xiàn)有MySQL應(yīng)用程序訪問MySQL Cluster。
管理客戶端:這類客戶端與管理服務(wù)器相連,并提供了啟動和停止節(jié)點、啟動和停止消息跟蹤(僅調(diào)試版本)、顯示節(jié)點版本和狀態(tài)、啟動和停止備份等的命令。
三、開始準備
1、準備服務(wù)器
現(xiàn)在,我們計劃建立有5個節(jié)點的MySQL CLuster體系,因此需要用到5臺機器,分別做如下用途:
用途 | 主機名 | IP | |
管理節(jié)點 | ndb_mgmd | 192.168.5.101 | |
數(shù)據(jù)節(jié)點1 | ndb1 | 192.168.5.102 | |
數(shù)據(jù)節(jié)點2 | ndb2 |
相關(guān)閱讀
熱門文章 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦MySQL常用維護管理工具Linux VPS/服務(wù)器上輕松導(dǎo)入、導(dǎo)出MySQL數(shù)據(jù)MySQL復(fù)制的概述、安裝、故障、技巧、工具
相關(guān)下載
人氣排行 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié)Mysql 1045錯誤解決辦法10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦MySQL服務(wù)器進程CPU占用100%解決辦法MySQL導(dǎo)出導(dǎo)入命令的用例MySQL無法啟動、無法停止各種解決方法總結(jié)三種常用的MySQL建表語句Mysql清空表的實現(xiàn)方法
|