MySQL cluster是專門用來(lái)做MySQL集群的程序,允許在無(wú)共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫(kù)的 Cluster 。在軟件中,Cluster的每個(gè)部分都會(huì)列為一個(gè)節(jié)點(diǎn),而最實(shí)用的則是管理(MGM)節(jié)點(diǎn)。該節(jié)點(diǎn)的作用就是管理里面的其他節(jié)點(diǎn),如提供配置數(shù)據(jù)、啟動(dòng)并停止節(jié)點(diǎn)、運(yùn)行備份等。由于MGM節(jié)點(diǎn)主要負(fù)責(zé)管理其他節(jié)點(diǎn)的配置,所以應(yīng)在啟動(dòng)其他節(jié)點(diǎn)之前首先啟動(dòng)這類節(jié)點(diǎn)。
組成部分
1、負(fù)載均衡節(jié)點(diǎn)(mysql)
負(fù)載均衡節(jié)點(diǎn)(也叫SQL節(jié)點(diǎn))是用來(lái)訪問集群數(shù)據(jù)的。相關(guān)的軟件,就是我們平時(shí)所使用的MySQL數(shù)據(jù)庫(kù)軟件;也就是由/etc/init.d/mysql腳本來(lái)管理的那個(gè)服務(wù)。
2、存儲(chǔ)節(jié)點(diǎn)(ndbd)
數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)是用來(lái)保存集群數(shù)據(jù)的,其服務(wù)的啟停是由腳本/etc/init.d/mysql-ndb來(lái)管理的。
3、管理節(jié)點(diǎn)(ndbd-mgm)
管理節(jié)點(diǎn)是用來(lái)管理集群內(nèi)其他節(jié)點(diǎn)的,比如提供配置信息、啟動(dòng)或停止節(jié)點(diǎn)、執(zhí)行備份等。其服務(wù)的啟停是由/etc/init.d/mysql-ndb-mgm腳本來(lái)管理的。由于這類節(jié)點(diǎn)是管理者,所以管理節(jié)點(diǎn)必須首先啟動(dòng),然后其他兩類節(jié)點(diǎn)再啟動(dòng)。
優(yōu)點(diǎn)缺點(diǎn)
一、優(yōu)點(diǎn):
1、99.999 %的高可用性
2、快速的自動(dòng)失效切換
3、靈活的分布式體系結(jié)構(gòu),沒有單點(diǎn)故障
4、高吞吐量和低延遲
5、可擴(kuò)展性強(qiáng),支持在線擴(kuò)容
二、缺點(diǎn):
1、存在很多限制,比如:不支持外鍵,數(shù)據(jù)行不能超過8K(不包括BLOB和text中的數(shù)據(jù))
2、部署、管理、配置很復(fù)雜
3、占用磁盤空間大,內(nèi)存大
4、備份和恢復(fù)不方便
5、復(fù)雜的sql查詢性能一般
主要結(jié)構(gòu)
1、管理(MGM)節(jié)點(diǎn):
這類節(jié)點(diǎn)的作用是管理MySQLCluster內(nèi)的其他節(jié)點(diǎn),如提供配 置數(shù)據(jù)、啟動(dòng)并停止節(jié)點(diǎn)、運(yùn)行備份等。由于這類節(jié)點(diǎn)負(fù)責(zé)管理其他節(jié)點(diǎn)的配置,應(yīng)在啟動(dòng)其他節(jié)點(diǎn)之前首先啟 動(dòng)這類節(jié)點(diǎn)。MGM節(jié)點(diǎn)是用命令“ndb_mgmd”啟動(dòng)的。對(duì)硬件沒什么要求,差一點(diǎn)的機(jī)器完全能夠勝任。默認(rèn)端口1186。
2、數(shù)據(jù)節(jié)點(diǎn):
這類節(jié)點(diǎn)用于保存Cluster的數(shù)據(jù)。數(shù)據(jù)節(jié)點(diǎn)的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對(duì)于兩個(gè)副本,每個(gè)副本有兩個(gè)片段,那么就有4個(gè)數(shù)據(jù)節(jié)點(diǎn)。不過沒有必要設(shè)置多個(gè)副本。數(shù)據(jù)節(jié)點(diǎn)是用命令“ndbd”啟動(dòng)的。可以選擇大內(nèi)存,cpu也相對(duì)來(lái)講不錯(cuò)的,尤其是以后ndbmtd對(duì)多核Cpu的支持。默認(rèn)端口2202
3、SQL節(jié)點(diǎn):
這是用來(lái)訪問Cluster數(shù)據(jù)的節(jié)點(diǎn)。對(duì)于MySQLCluster,客戶端節(jié)點(diǎn)是使用NDBCluster存儲(chǔ)引擎的傳統(tǒng)MySQL服務(wù)器。通常,SQL節(jié)點(diǎn)是使用命令“mysqld–ndbcluster”啟動(dòng)的,或?qū)ⅰ皀dbcluster”添加到“my.cnf”后使用“mysqld”啟動(dòng)。對(duì)cpu要求較高,選擇多核,高頻CPU較好。
新增功能
v8.0.11(2019-08-11)
1、更強(qiáng)內(nèi)存性能和可擴(kuò)展性:
根據(jù)SysBench標(biāo)準(zhǔn),MySQL Cluster 7.4在只讀工作負(fù)載上的性能比 7.3版本提高了近50%,讀寫操作性能也提高了40%。性能改進(jìn)可通過SQL或任何由MySQL Cluster支持的本地NoSQL 應(yīng)用程序接口得到實(shí)現(xiàn),包括Java, C++,HTTP, Memcached和JavaScript/node.js。此外,7.4版本的還創(chuàng)造了新紀(jì)錄,即通過32個(gè)數(shù)據(jù)節(jié)點(diǎn)實(shí)現(xiàn)每秒2億條NoSQL查詢,以及通過 16個(gè)數(shù)據(jù)節(jié)點(diǎn)每秒查詢近250萬(wàn)SQL語(yǔ)句
2、改進(jìn)的工作負(fù)載效率分析:
現(xiàn)在,用戶可以在MySQL 集群上使用相同的記憶優(yōu)化表高效運(yùn)行涉及復(fù)雜分析和隨機(jī)搜索的應(yīng)用負(fù)載,這為OLTP工作負(fù)載提供了亞毫秒級(jí)別的超低延遲和高水平的并發(fā)性能。這些內(nèi)存表可以和基于磁盤的表共同使用
3、新的跨地域冗余功能實(shí)現(xiàn)跨數(shù)據(jù)中心的高可用性:
最新版本提供沖突性事務(wù)傳回功能,并能在跨地域集群之間實(shí)現(xiàn)靈活可用、即時(shí)更新的復(fù)制功能,使得應(yīng)用可以自由向任意站點(diǎn)發(fā)送查詢或?qū)懭朊?,同時(shí)完全不影響一致性
4、高級(jí)管理功能:
MySQL Cluster為內(nèi)部部署和基于云的部署提供了以下改進(jìn):
新的分布式內(nèi)存使用和數(shù)據(jù)庫(kù)操作報(bào)告,提高管理效率;
其他性能調(diào)優(yōu)選項(xiàng);
更快的網(wǎng)絡(luò)維護(hù)操作,包括軟件升級(jí)速度提高多達(dá)5倍
0條評(píng)論