MySQL高可用集群分享-5課件_第1頁
MySQL高可用集群分享-5課件_第2頁
MySQL高可用集群分享-5課件_第3頁
MySQL高可用集群分享-5課件_第4頁
MySQL高可用集群分享-5課件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

MySQL高可用集群MySQL架構(gòu)演變MySQL-MMMAtlasMySQL高可用集群MySQL架構(gòu)演變1MySQL架構(gòu)演變1>V1.0簡單網(wǎng)站架構(gòu)2>V2.0垂直拆分3>V3.0主從架構(gòu)4>V4.0水平拆分MySQL架構(gòu)演變1>V1.0簡單網(wǎng)站架構(gòu)2V1.0簡單網(wǎng)站架構(gòu)

一個簡單的小型網(wǎng)站或者應(yīng)用背后的架構(gòu)可以非常簡單,數(shù)據(jù)存儲只需要一個mysqlinstance就能滿足數(shù)據(jù)讀取和寫入需求,處于這個時間段的網(wǎng)站,一般會把所有的信息存到一個databaseinstance里面。APPDALMySQLInstanceV1.0簡單網(wǎng)站架構(gòu)一個簡單的小型網(wǎng)站或者應(yīng)用背后3在V1.0架構(gòu)下,數(shù)據(jù)存儲的瓶頸:1.數(shù)據(jù)量的總大小一個機器放不下時。2.數(shù)據(jù)的索引(B+Tree)一個機器的內(nèi)存放不下時。3.訪問量(讀寫混合)一個實例不能承受。只有當(dāng)以上3件事情任何一件或多件滿足時,我們才需要考慮往下一級演變。從此我們可以看出,事實上對于很多小公司小應(yīng)用,這種架構(gòu)已經(jīng)足夠滿足他們的需求了。在V1.0架構(gòu)下,數(shù)據(jù)存儲的瓶頸:4V2.0垂直拆分一般當(dāng)V1.0遇到瓶頸時,首先最簡便的拆分方法就是垂直拆分,何謂垂直?就是從業(yè)務(wù)角度來看,將關(guān)聯(lián)性不強的數(shù)據(jù)拆分到不同的instance上,從而達到消除瓶頸的目標(biāo)。以圖中的為例,將用戶信息數(shù)據(jù),和業(yè)務(wù)數(shù)據(jù)拆分到不同的三個實例上。對于重復(fù)讀類型比較多的場景,我們還可以加一層cache,來減少對DB的壓力。APPCacheDALMySQLInstanceMySQLInstanceMySQLInstanceuserinfo1userinfo2userinfoV2.0垂直拆分一般當(dāng)V1.0遇到瓶頸時,首先最簡便的拆5在V2.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸:1.單實例單業(yè)務(wù)依然存在V1.0所述瓶頸遇到瓶頸時可以考慮往本文更高V版本升級,若是讀請求導(dǎo)致達到性能瓶頸可以考慮往V3.0升級,其他瓶頸考慮往V4.0升級。在V2.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸:6V3.0主從架構(gòu)此類架構(gòu)主要解決V2.0架構(gòu)下的讀問題,通過給Instance掛數(shù)據(jù)實時備份的思路來遷移讀取的壓力,在Mysql的場景下就是通過主從結(jié)構(gòu),主庫抗寫壓力,通過從庫來分擔(dān)讀壓力,對于寫少讀多的應(yīng)用,V3.0主從架構(gòu)完全能夠勝任。APPCacheDALMSSuserinfowriteuserinforeaduserinforeadV3.0主從架構(gòu)此類架構(gòu)主要解決V2.0架構(gòu)下的讀問題,通7在V3.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸是什么?1.寫入量主庫不能承受在V3.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸是什么?8V4.0水平拆分對于V2.0V3.0方案遇到瓶頸時,都可以通過水平拆分來解決,水平拆分和垂直拆分有較大區(qū)別,垂直拆分拆完的結(jié)果,在一個實例上是擁有全量數(shù)據(jù)的,而水平拆分之后,任何實例都只有全量的1/n的數(shù)據(jù),以下圖userinfo的拆分為例,將userinfo拆分為2個cluster,每個cluster持有總量的1/2數(shù)據(jù),2個cluster數(shù)據(jù)的總和等于一份完整數(shù)據(jù)(注:這里不再叫單個實例而是叫一個cluster代表包含主從的一個小mysql集群)V4.0水平拆分對于V2.0V3.0方案遇到瓶頸時,都可9APPCacheDALMSSmysqlclusterMSSmysqlclusterAPPCacheDALMSSmysqlclusterMSS10Mysql-mmm1>Mysql-mmm簡介2>mysql-mmm組成與原理3>mysql-mmm架構(gòu)介紹Mysql-mmm1>Mysql-mmm簡介11Atlas1>atlas簡介2>atlas主要功能3>atlas架構(gòu)介紹Atlas1>atlas簡介12Mysql-mmm簡介

MMM(Master-MasterreplicationmanagerforMysql)是一套靈活的腳本程序,用來對mysqlreplication進行監(jiān)控和故障遷移,并能管理mysqlMaster-Master復(fù)制的配置(同一時間只有一個節(jié)點是可寫的)。附帶的工具套件可以實現(xiàn)多個slaves的read負載均衡,因此你可以使用這個工具移除一組服務(wù)器中復(fù)制延遲較高的服務(wù)器的虛擬IP,它還可以備份數(shù)據(jù),兩節(jié)點之間再同步等等。Mysql-mmm簡介MMM(Master-M13mysql-mmm組成與原理Mysql-mmm的管理功能主要通過三個腳本來實現(xiàn)1>mmm_mond監(jiān)控進程,負責(zé)所有的監(jiān)控工作,決定和處理所有節(jié)點角色活動。此腳本需要在監(jiān)管機上運行。2>mmm_agentd運行在每個mysql服務(wù)器上的代理進程,完成監(jiān)控的探針工作和執(zhí)行簡單的遠端服務(wù)設(shè)置。此腳本需要在被監(jiān)管機上運行。3>mmm_control一個簡單的腳本,提供管理mmm_mond進程的命令mysql-mmm的監(jiān)管端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監(jiān)管的管理,這些IP會綁定在可用mysql之上,當(dāng)某一臺mysql宕機時,監(jiān)管機會將VIP遷移至其他mysql。mysql-mmm組成與原理Mysql-mmm的管理功能主要14mysql-mmm架構(gòu)介紹優(yōu)點:高可用性,擴展性好,出現(xiàn)故障自動切換,對于主主同步,在同一時間只提供一臺數(shù)據(jù)庫寫操作,保證的數(shù)據(jù)的一致性。缺點:Monitor節(jié)點是單點,可以Keepalived實現(xiàn)高可用,對大規(guī)模寫入操作有瓶頸。mysql-mmm架構(gòu)介紹15MySQL高可用集群分享-5課件16atlas簡介Atlas是由Qihoo360,Web平臺部基礎(chǔ)架構(gòu)團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy0.8.2版本的基礎(chǔ)上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達幾十億條。atlas簡介Atlas是由Qihoo360,Web17atlas主要功能1>讀寫分離2>從庫負載均衡3>IP過濾4>自動分表5>DBA可平滑上下線DB6>自動摘除宕機的DBatlas主要功能1>讀寫分離18atlas架構(gòu)介紹不足之處:1>使用atlas比直連DB,性能損耗大概是30%-35%左右2>使用atlas比直連DB,響應(yīng)時間大概是直連DB的1.5~2倍3>對分表的支持不是太好,只支持同schema下的hash分表,并且分表后查詢只基于分表key的等值查詢(如果支持范圍查詢,那么比直接非分表情況掃描全表的性能還差,所以360干脆就不支持)4>atlas配置暫時不支持配置參數(shù)的動態(tài)加載,如果修改了配置需要重啟atlas,這可能會對業(yè)務(wù)有一點的影響atlas架構(gòu)介紹不足之處:19主備模式,高可用雙主模式↓主備模式,高可用雙主模式↓20謝謝!謝謝!21MySQL高可用集群MySQL架構(gòu)演變MySQL-MMMAtlasMySQL高可用集群MySQL架構(gòu)演變22MySQL架構(gòu)演變1>V1.0簡單網(wǎng)站架構(gòu)2>V2.0垂直拆分3>V3.0主從架構(gòu)4>V4.0水平拆分MySQL架構(gòu)演變1>V1.0簡單網(wǎng)站架構(gòu)23V1.0簡單網(wǎng)站架構(gòu)

一個簡單的小型網(wǎng)站或者應(yīng)用背后的架構(gòu)可以非常簡單,數(shù)據(jù)存儲只需要一個mysqlinstance就能滿足數(shù)據(jù)讀取和寫入需求,處于這個時間段的網(wǎng)站,一般會把所有的信息存到一個databaseinstance里面。APPDALMySQLInstanceV1.0簡單網(wǎng)站架構(gòu)一個簡單的小型網(wǎng)站或者應(yīng)用背后24在V1.0架構(gòu)下,數(shù)據(jù)存儲的瓶頸:1.數(shù)據(jù)量的總大小一個機器放不下時。2.數(shù)據(jù)的索引(B+Tree)一個機器的內(nèi)存放不下時。3.訪問量(讀寫混合)一個實例不能承受。只有當(dāng)以上3件事情任何一件或多件滿足時,我們才需要考慮往下一級演變。從此我們可以看出,事實上對于很多小公司小應(yīng)用,這種架構(gòu)已經(jīng)足夠滿足他們的需求了。在V1.0架構(gòu)下,數(shù)據(jù)存儲的瓶頸:25V2.0垂直拆分一般當(dāng)V1.0遇到瓶頸時,首先最簡便的拆分方法就是垂直拆分,何謂垂直?就是從業(yè)務(wù)角度來看,將關(guān)聯(lián)性不強的數(shù)據(jù)拆分到不同的instance上,從而達到消除瓶頸的目標(biāo)。以圖中的為例,將用戶信息數(shù)據(jù),和業(yè)務(wù)數(shù)據(jù)拆分到不同的三個實例上。對于重復(fù)讀類型比較多的場景,我們還可以加一層cache,來減少對DB的壓力。APPCacheDALMySQLInstanceMySQLInstanceMySQLInstanceuserinfo1userinfo2userinfoV2.0垂直拆分一般當(dāng)V1.0遇到瓶頸時,首先最簡便的拆26在V2.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸:1.單實例單業(yè)務(wù)依然存在V1.0所述瓶頸遇到瓶頸時可以考慮往本文更高V版本升級,若是讀請求導(dǎo)致達到性能瓶頸可以考慮往V3.0升級,其他瓶頸考慮往V4.0升級。在V2.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸:27V3.0主從架構(gòu)此類架構(gòu)主要解決V2.0架構(gòu)下的讀問題,通過給Instance掛數(shù)據(jù)實時備份的思路來遷移讀取的壓力,在Mysql的場景下就是通過主從結(jié)構(gòu),主庫抗寫壓力,通過從庫來分擔(dān)讀壓力,對于寫少讀多的應(yīng)用,V3.0主從架構(gòu)完全能夠勝任。APPCacheDALMSSuserinfowriteuserinforeaduserinforeadV3.0主從架構(gòu)此類架構(gòu)主要解決V2.0架構(gòu)下的讀問題,通28在V3.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸是什么?1.寫入量主庫不能承受在V3.0的架構(gòu)下,數(shù)據(jù)存儲的瓶頸是什么?29V4.0水平拆分對于V2.0V3.0方案遇到瓶頸時,都可以通過水平拆分來解決,水平拆分和垂直拆分有較大區(qū)別,垂直拆分拆完的結(jié)果,在一個實例上是擁有全量數(shù)據(jù)的,而水平拆分之后,任何實例都只有全量的1/n的數(shù)據(jù),以下圖userinfo的拆分為例,將userinfo拆分為2個cluster,每個cluster持有總量的1/2數(shù)據(jù),2個cluster數(shù)據(jù)的總和等于一份完整數(shù)據(jù)(注:這里不再叫單個實例而是叫一個cluster代表包含主從的一個小mysql集群)V4.0水平拆分對于V2.0V3.0方案遇到瓶頸時,都可30APPCacheDALMSSmysqlclusterMSSmysqlclusterAPPCacheDALMSSmysqlclusterMSS31Mysql-mmm1>Mysql-mmm簡介2>mysql-mmm組成與原理3>mysql-mmm架構(gòu)介紹Mysql-mmm1>Mysql-mmm簡介32Atlas1>atlas簡介2>atlas主要功能3>atlas架構(gòu)介紹Atlas1>atlas簡介33Mysql-mmm簡介

MMM(Master-MasterreplicationmanagerforMysql)是一套靈活的腳本程序,用來對mysqlreplication進行監(jiān)控和故障遷移,并能管理mysqlMaster-Master復(fù)制的配置(同一時間只有一個節(jié)點是可寫的)。附帶的工具套件可以實現(xiàn)多個slaves的read負載均衡,因此你可以使用這個工具移除一組服務(wù)器中復(fù)制延遲較高的服務(wù)器的虛擬IP,它還可以備份數(shù)據(jù),兩節(jié)點之間再同步等等。Mysql-mmm簡介MMM(Master-M34mysql-mmm組成與原理Mysql-mmm的管理功能主要通過三個腳本來實現(xiàn)1>mmm_mond監(jiān)控進程,負責(zé)所有的監(jiān)控工作,決定和處理所有節(jié)點角色活動。此腳本需要在監(jiān)管機上運行。2>mmm_agentd運行在每個mysql服務(wù)器上的代理進程,完成監(jiān)控的探針工作和執(zhí)行簡單的遠端服務(wù)設(shè)置。此腳本需要在被監(jiān)管機上運行。3>mmm_control一個簡單的腳本,提供管理mmm_mond進程的命令mysql-mmm的監(jiān)管端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監(jiān)管的管理,這些IP會綁定在可用mysql之上,當(dāng)某一臺mysql宕機時,監(jiān)管機會將VIP遷移至其他mysql。mysql-mmm組成與原理Mysql-mmm的管理功能主要35mysql-mmm架構(gòu)介紹優(yōu)點:高可用性,擴展性好,出現(xiàn)故障自動切換,對于主主同步,在同一時間只提供一臺數(shù)據(jù)庫寫操作,保證的數(shù)據(jù)的一致性。缺點:Monitor節(jié)點是單點,可以Keepalived實現(xiàn)高可用,對大規(guī)模寫入操作有瓶頸。mysql-mmm架構(gòu)介紹36MySQL高可用集群分享-5課件37atlas簡介A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論