千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 為什么說MySQL Cluster是shared-nothing架構的?

為什么說MySQL Cluster是shared-nothing架構的?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 08:36:39 1697157399

一、說MySQL Cluster是shared-nothing架構的原因

1、MySQL Cluster每個節點獨立

MySQL Cluster中的每個節點都是一個獨立的系統,各節點彼此獨立,各自擁有自己的處理器、內存和存儲設備等,它們之間沒有共享數據的設施。

2、數據分片和復制

在MySQL Cluster中,數據可以按照特定的規則分割成多個分片,每個分片存儲在不同的節點上。同時,每個分片也會被多次復制到不同的節點上,以提高數據的可用性和容錯性。這種分片和復制的方式可以讓MySQL Cluster具有較高的可擴展性和強大的管理能力,能夠同時支持大規模集群和高并發訪問。

3、獨立的網絡架構

MySQL Cluster中使用了單獨的網絡架構,將節點之間的通信隔離開來,這使得節點之間可以進行并行處理,從而提高了整個集群的吞吐量和處理速度。

二、MySQL Cluster介紹

1、簡介

MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“內存中”數據庫的 Cluster 。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內存和磁盤,不存在單點故障。MySQL Cluster 由一組計算機構成,每臺計算機上均運行著多種進程,包括MySQL服務器,NDB Cluster 的數據節點,管理服務器,以及(可能)專門的數據訪問程序。關于 Cluster 中這些組件的關系。

2、特點介紹

“NDB” 是一種“內存中”的存儲引擎,它具有可用性高和數據一致性等特點。MySQL Cluster 能夠使用多種故障切換和負載平衡選項配置NDB存儲引擎,但在 Cluster 級別上的存儲引擎上做這個最簡單。MySQL Cluster的NDB存儲引擎包含完整的數據集,僅取決于 Cluster本身內的其他數據。目前,MySQL Cluster的 Cluster部分可獨立于MySQL服務器進行配置。在MySQL Cluster中, Cluster的每個部分被視為1個節點。

管理(MGM)節點:這類節點的作用是管理MySQL Cluster內的其他節點,如提供配置數據、啟動并停止節點、運行備份等。由于這類節點負責管理其他節點的配置,應在啟動其他節點之前首先啟動這類節點。MGM節點是用命令“ndb_mgmd”啟動的。數據節點:這類節點用于保存 Cluster的數據。數據節點的數目與副本的數目相關,是片段的倍數。例如,對于兩個副本,每個副本有兩個片段,那么就有4個數據節點。不過沒有必要設置多個副本。數據節點是用命令“ndbd”啟動的。SQL節點:這是用來訪問 Cluster數據的節點。對于MySQL Cluster,客戶端節點是使用NDB Cluster存儲引擎的傳統MySQL服務器。通常,SQL節點是使用命令“mysqld –ndbcluster”啟動的,或將“ndbcluster”添加到“my.cnf”后使用“mysqld”啟動。注釋:在很多情況下,術語“節點”用于指計算機,但在討論MySQL Cluster時,它表示的是進程。在單臺計算機上可以有任意數目的節點,為此,我們采用術語“Cluster主機”。

管理服務器(MGM節點)負責管理 Cluster配置文件和 Cluster日志。 Cluster中的每個節點從管理服務器檢索配置數據,并請求確定管理服務器所在位置的方式。當數據節點內出現新的事件時,節點將關于這類事件的信息傳輸到管理服務器,然后,將這類信息寫入 Cluster日志。

此外,可以有任意數目的 Cluster客戶端進程或應用程序。它們分為兩種類型:

標準MySQL客戶端:對于MySQL Cluster,它們與標準的(非 Cluster類)MySQL沒有區別。換句話講,能夠從用PHP、Perl、C、C++、Java、Python、Ruby等編寫的現有MySQL應用程序訪問MySQL Cluster。 管理客戶端:這類客戶端與管理服務器相連,并提供了啟動和停止節點、啟動和停止消息跟蹤(僅調試版本)、顯示節點版本和狀態、啟動和停止備份等的命令。

MySQL Cluster 是MySQL適合于分布式計算環境的高實用、高冗余版本。它采用了NDB Cluster?存儲引擎,允許在1個 Cluster 中運行多個MySQL服務器。在MySQL 5.0及以上的二進制版本中、以及與最新的Linux版本兼容的RPM中提供了該存儲引擎。(注意,要想獲得MySQL Cluster 的功能,必須安裝 mysql-server 和 mysql-max RPM)。

目前能夠運行MySQL Cluster 的操作系統有Linux、Mac OS X和Solaris(一些用戶通報成功地在FreeBSD上運行了MySQL Cluster ,但MySQL AB公司尚未正式支持該特性),最新版本MySQL Cluste7.1.10支持更多操作系統,包括Windows。

所有的這些節點構成一個完成的MySQL集群體系。數據保存在“NDB存儲服務器”的存儲引擎中,表(結構)則保存在“MySQL服務器”中。應用程序通過“MySQL服務器”訪問這些數據表,集群管理服務器通過管理工具(ndb_mgmd)來管理“NDB存儲服務器”。

通過將MySQL Cluster 引入開放源碼世界,MySQL為所有需要它的人員提供了具有高可用性、高性能和可縮放性的 Cluster 數據管理。

三、shared-nothing架構介紹

1、簡介

Shared-Nothing(SN)是一種分布式計算架構,在這種架構中,每一個節點都是獨立的,自己的,在系統中不存在單點競爭。更明確地說,沒有節點共享存儲和硬盤等內容,都是各自管理自己的數據。SN相對中央控制架構有很大的優點,可以避免單點故障,擁有自我恢復能力,并且不在破壞原有系統的情況下進行升級。

2、內容

share-memory:多個cpu共享同一片內存,cpu之間通過內部通訊機制(interconnection network)進行通訊share-disk:每一個cpu使用自己的私有內存區域,通過內部通訊機制直接訪問所有磁盤系統share-nothing:每一個cpu都有私有內存區域和私有磁盤空間,而且2個cpu不能訪問相同磁盤空間,cpu之間的通訊通過網絡連接

3、作用

總的來說,shared-nothing降低了競爭資源的等待時間,從而提高了性能。反過來,如果一個數據庫應用系統要獲得良好的可擴展的性能,它從設計和優化上就要考慮 shared-nothing體系結構。Share nothing means few contention。它在oracle數據庫設計和優化上有很多相同之處。

Share-nothing 對數據庫應用主要體現在多用戶并行訪問系統時候,優化數據庫操作的response time上。如果數據庫操作能夠順利獲得所需要的資源,不發生等待事件,自然可以減少response time。同時也體現在操作盡量少占用資源上,避免浪費時間在無用功上。

延伸閱讀1:能運行MySQL Cluster 的操作系統

目前能夠運行 MySQL Cluster 的操作系統有 Windows、Linux、Mac OS X 和 Solaris(一些用戶通報成功地在 FreeBSD 上運行了 MySQL Cluster ,但 MySQL AB 公司尚未正式支持該特性)。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲日韩∧V精品一区二区小说 | 亚洲国产免费综合 | 亚洲午夜国产AV中文乱码字幕 | 亚洲精品中文字幕乱码 | 日韩国产精品久久久久久亚洲 | 亚洲高清无在码在线看片 |