百度架構師是怎樣搭建MySQL分佈式集羣?

一、什麼是MySQL集羣node

MySQL集羣是一個無共享的(shared-nothing)、分佈式節點架構的存儲方案,其目的是提供容錯性和高性能。mysql

數據更新使用讀已提交隔離級別(read-committedisolation)來保證全部節點數據的一致性,使用兩階段提交機制(two-phasedcommit)保證全部節點都有相同的數據(若是任何一個寫操做失敗,則更新失敗)。sql

無共享的對等節點使得某臺服務器上的更新操做在其餘服務器上當即可見。傳播更新使用一種複雜的通訊機制,這一機制專用來提供跨網絡的高吞吐量。數據庫

經過多個MySQL服務器分配負載,從而最大程序地達到高性能,經過在不一樣位置存儲數據保證高可用性和冗餘。服務器

須要更多MySQL集羣知識的能夠訂閱我哦網絡

百度架構師是怎樣搭建MySQL分佈式集羣?

二、名稱概念架構

MySQL集羣有以下三層:分佈式

應用程序層:負責與mysql服務器通訊的各類應用程序。性能

Mysql服務器層:處理SQL命令,並與NDB存儲引擎通訊和Mysql服務器。cdn

NDB集羣組件層:NDB集羣組件有時也稱數據節點,負責處理查詢,而後將結果返回給mysql服務器。

其中MySQL數據庫集羣主要包括以下三部分:

1) SQL節點(SQL node - 下圖對應爲 mysqld):分佈式數據庫。包括自身數據和查詢中心結點數據

2) 數據節點(Data node - ndbd):集羣共享數據(內存中)

3) 管理服務器(Management Server - ndb_mgmd):管理集羣 SQL node,Data node

拓撲結構圖以下所示:

百度架構師是怎樣搭建MySQL分佈式集羣?

百度架構師是怎樣搭建MySQL分佈式集羣?

歡迎關注,歡迎留言探討。

相關文章
相關標籤/搜索