打開思路,數(shù)據(jù)庫的全場景高可用性架構(gòu)長什么樣?

來源:騰訊云數(shù)據(jù)庫
作者:騰訊云數(shù)據(jù)庫
時間:2023-06-15
3191
數(shù)據(jù)庫是企業(yè)核心業(yè)務(wù)運行的重要組成部分,數(shù)據(jù)是企業(yè)的生命線,如果數(shù)據(jù)庫出現(xiàn)宕機、數(shù)據(jù)丟失或不可用等問題,將會對企業(yè)的生產(chǎn)、營銷和決策產(chǎn)生難以預(yù)估的影響,因此,一套高可用的數(shù)據(jù)庫架構(gòu)對于企業(yè)來說至關(guān)重要,可以最大化保證業(yè)務(wù)穩(wěn)定性和數(shù)據(jù)可靠性。

數(shù)據(jù)庫是企業(yè)核心業(yè)務(wù)運行的重要組成部分,數(shù)據(jù)是企業(yè)的生命線,如果數(shù)據(jù)庫出現(xiàn)宕機、數(shù)據(jù)丟失或不可用等問題,將會對企業(yè)的生產(chǎn)、營銷和決策產(chǎn)生難以預(yù)估的影響,因此,一套高可用的數(shù)據(jù)庫架構(gòu)對于企業(yè)來說至關(guān)重要,可以最大化保證業(yè)務(wù)穩(wěn)定性和數(shù)據(jù)可靠性。騰訊云MySQL推出全場景高可用性架構(gòu)(All-Scenario High Availability Architecture,AS-HAA),用戶可根據(jù)實際業(yè)務(wù)需求、業(yè)務(wù)類型自行配置。

架構(gòu)概述

數(shù)據(jù)庫的架構(gòu)就好比房屋建造結(jié)構(gòu),如果一個房子只有一扇門和一片玻璃窗,那么一旦遭到攻擊或破壞,整個房子就處于危險狀態(tài)。同樣,一個沒有高可用架構(gòu)的應(yīng)用程序,在面臨硬件設(shè)備故障、網(wǎng)絡(luò)癱瘓、自然災(zāi)害以及人為錯誤等問題時,也很容易受到威脅。高可用架構(gòu)就像房屋加固結(jié)構(gòu)和消防系統(tǒng),在故障發(fā)生時實現(xiàn)快速恢復(fù),最大化降低損失。

但是,我國業(yè)內(nèi)尚未給出一套完整的全場景高可用性架構(gòu)解決方案?;诖?,騰訊云MySQL推出全場景高可用性架構(gòu)AS-HAA,為用戶提供高可用架構(gòu)搭建的全新思路。該架構(gòu)基于跨可用區(qū)部署、異地備份保障,搭配數(shù)據(jù)庫代理和彈性CPU能力,結(jié)合配套生態(tài)工具共同打造,可有效提高系統(tǒng)穩(wěn)定性和可用性、減少業(yè)務(wù)停機時間和數(shù)據(jù)丟失率、提高故障診斷和恢復(fù)效率、提升數(shù)據(jù)處理能力和響應(yīng)速度等,全方位全流程保障業(yè)務(wù)穩(wěn)定運行。

640.png

圖1:騰訊云MySQL全場景高可用性架構(gòu)

騰訊云MySQL全場景高可用性架構(gòu)可為用戶的實際業(yè)務(wù)帶來諸多幫助,主要包括以下方面:

1.提升穩(wěn)定性:云數(shù)據(jù)庫MySQL全場景高可用性架構(gòu)的可擴展性強,在突發(fā)流量場景和熱點場景下優(yōu)勢更為明顯,通過新增實例或數(shù)據(jù)庫代理節(jié)點,均衡各個實例之間的負(fù)載,實現(xiàn)系統(tǒng)的快速擴容;支持CPU自動彈性擴縮容,保障業(yè)務(wù)平穩(wěn)運行的同時輕松應(yīng)對流量高峰;在跨可用區(qū)部署架構(gòu)中,就近訪問能力也可幫助用戶降低網(wǎng)絡(luò)延時,助力前端業(yè)務(wù)絲滑體驗;

2.保障可用性:云數(shù)據(jù)庫MySQL全組件實現(xiàn)跨可用區(qū)/跨地域部署,降低單點故障風(fēng)險,即某個可用區(qū)或某個實例出現(xiàn)故障,可自動切換到其他可用區(qū)上的備用節(jié)點,整個系統(tǒng)仍可以保持穩(wěn)定運行;其次,通過將數(shù)據(jù)庫部署在多地數(shù)據(jù)中心,可以實現(xiàn)跨區(qū)域容災(zāi),從而降低故障發(fā)生的概率。此外,通過備份、數(shù)據(jù)同步(三節(jié)點支持強同步)等機制,可以減少業(yè)務(wù)停機時間和數(shù)據(jù)丟失率,提高了業(yè)務(wù)的容災(zāi)性和數(shù)據(jù)可靠性、完整性;

3.提高數(shù)據(jù)處理能力和響應(yīng)速度:通過數(shù)據(jù)庫代理將負(fù)載分布到多個數(shù)據(jù)庫節(jié)點上,從而提高數(shù)據(jù)處理能力和響應(yīng)速度。同時,可自動將流量切換到正常運行的節(jié)點上,避免了數(shù)據(jù)庫節(jié)點故障導(dǎo)致的數(shù)據(jù)訪問異常;

4.提高故障診斷和恢復(fù)效率:通過數(shù)據(jù)庫智能管家DBbrain 7 24h監(jiān)控,幫助DBA快速定位問題解決問題;同時,備份、數(shù)據(jù)同步等機制也有助于故障恢復(fù)和數(shù)據(jù)恢復(fù),縮短故障修復(fù)時間;

綜上所述,騰訊云MySQL全場景高可用性架構(gòu)是最大化保障數(shù)據(jù)庫系統(tǒng)穩(wěn)定運行、數(shù)據(jù)可靠性、安全性和高性能的解決方案,對于保障企業(yè)的正常運轉(zhuǎn)和業(yè)務(wù)的發(fā)展至關(guān)重要。下文將為您詳細(xì)介紹騰訊云MySQL全場景高可用性架構(gòu)的配置細(xì)節(jié)。

配置細(xì)節(jié)

在新版控制臺界面上,云數(shù)據(jù)庫MySQL從可用性、性能、安全三個方面出發(fā),提供給用戶數(shù)據(jù)庫功能配置詳情。用戶可根據(jù)業(yè)務(wù)情況,選擇可用性級別,參考對應(yīng)配置。此處,我們選擇全場景高可用性架構(gòu)配置,用戶可參考各配置項狀態(tài)欄查看當(dāng)前實例是否已具備該能力。

640

圖2:實例詳情頁界面(灰度中)-配置詳情

2.1高可用架構(gòu)部署

全場景高可用性架構(gòu)部署包含跨可用區(qū)主實例、異地跨可用區(qū)災(zāi)備實例以及跨地域備份組成??缈捎脜^(qū)部署是指將數(shù)據(jù)庫系統(tǒng)分布在多個可用區(qū)中,以提高系統(tǒng)的可用性和容錯性。簡單來說,就是將數(shù)據(jù)庫備份到不同的可用區(qū),從而保證在某個可用區(qū)發(fā)生故障時,其他可用區(qū)中的數(shù)據(jù)庫可以繼續(xù)服務(wù)。

跨可用區(qū)部署的優(yōu)點在于提高了數(shù)據(jù)庫系統(tǒng)的可用性和容錯性,從而降低了系統(tǒng)的單點故障風(fēng)險。另外,它還能降低訪問延遲,提高了用戶請求響應(yīng)速度,從而保證業(yè)務(wù)更加穩(wěn)定和可靠。

全場景高可用性架構(gòu)建議用戶選擇三節(jié)點進行配置,三節(jié)點采用一主兩備架構(gòu),支持強同步復(fù)制方式,能為用戶提供金融級的可靠性和高可用性。以圖1為例,全場景高可用性架構(gòu)支持業(yè)務(wù)的跨可用區(qū)部署,具體方案如下:

1.主實例部署在廣州三區(qū),主要負(fù)責(zé)讀寫操作,提供主要的服務(wù)訪問入口;

2.備節(jié)點分別部署在廣州三區(qū)和廣州六區(qū),從主實例處同步數(shù)據(jù),并實現(xiàn)數(shù)據(jù)備份和災(zāi)備故障轉(zhuǎn)移;

3.備份中心可以同時部署在廣州三區(qū)和北京地域中,以保證數(shù)據(jù)的安全可靠性;

4.災(zāi)備實例部署在上海地域,災(zāi)備主實例和災(zāi)備備節(jié)點分別部署在上海八區(qū)和上海五區(qū),負(fù)責(zé)備份主實例的數(shù)據(jù),并在災(zāi)難恢復(fù)期間提供主要數(shù)據(jù)處理和服務(wù)能力,從而保證數(shù)據(jù)庫的高可用性和穩(wěn)定性;

5.數(shù)據(jù)庫的跨可用區(qū)部署可以通過數(shù)據(jù)庫代理將請求轉(zhuǎn)發(fā)到不同的數(shù)據(jù)庫實例,并保證請求可靠到達(dá)和響應(yīng),從而提高系統(tǒng)的響應(yīng)速度和可用性。同時,可在多個可用區(qū)內(nèi)設(shè)置只讀實例,實現(xiàn)讀寫分離,降低主實例讀負(fù)載壓力;

如果廣州三區(qū)的主實例不幸宕機,全場景高可用性架構(gòu)可提供三重保障機制,確保業(yè)務(wù)在主實例宕機后的快速恢復(fù)和無縫切換,減少由此帶來的損失,方案如下:

1.備節(jié)點接管:當(dāng)主實例宕機后,備節(jié)點可以在數(shù)秒內(nèi)自動接管為主實例,成為新的主節(jié)點,并提供讀寫服務(wù)。此時,業(yè)務(wù)可以無需任何手動干預(yù),無縫切換到新的主節(jié)點上繼續(xù)提供服務(wù);

2.災(zāi)備節(jié)點接管:如果備節(jié)點也無法正常提供服務(wù),災(zāi)備節(jié)點被快速拉起接管為主節(jié)點,以保證業(yè)務(wù)的無縫切換和高可用性;

3.備份中心及時恢復(fù)數(shù)據(jù):此外,備份中心也會及時備份主實例的數(shù)據(jù),并在主實例不可恢復(fù)的情況下,恢復(fù)數(shù)據(jù)到可用實例上,以保證業(yè)務(wù)的完整性和穩(wěn)定性;

2.2數(shù)據(jù)庫代理(proxy)

數(shù)據(jù)庫代理是介于數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫服務(wù)器之間的中間層,主要是用于處理數(shù)據(jù)庫請求和響應(yīng)等工作。云數(shù)據(jù)庫MySQL提供的數(shù)據(jù)庫代理具體支持以下能力:

1.讀寫分離

數(shù)據(jù)庫代理相當(dāng)于是個中轉(zhuǎn)站,可以將所有請求按權(quán)重分發(fā)給數(shù)據(jù)庫的主從節(jié)點、只讀實例,以此實現(xiàn)讀寫分離,從而降低主庫負(fù)載,提高整個系統(tǒng)的性能和可用性,尤其適用于請求量高、連接數(shù)多的業(yè)務(wù)。同時,proxy支持開啟事物拆分能力,可將一個事物內(nèi)的讀和寫分發(fā)到不同實例上去執(zhí)行,以此降低主實例負(fù)載。同時,數(shù)據(jù)庫代理采用集群架構(gòu)部署,多節(jié)點可保證故障平滑轉(zhuǎn)移。

2.獨立訪問

云數(shù)據(jù)庫MySQL提供的數(shù)據(jù)庫代理服務(wù)可獨立于主實例訪問,即數(shù)據(jù)庫代理擁有獨立的訪問地址,最大程度降低網(wǎng)絡(luò)安全風(fēng)險和維護成本。更高級的,用戶可根據(jù)業(yè)務(wù)的需要通過不同的代理節(jié)點進行負(fù)載分配,給到不同業(yè)務(wù)相應(yīng)的代理地址即可。

3.跨可用部署+就近訪問

基于云數(shù)據(jù)庫MySQL跨可用區(qū)部署特性,proxy也支持跨可用區(qū)掛載,就近的客戶端流量自動路由到相應(yīng)的代理節(jié)點上(即就近訪問功能),以提高訪問效率和降低延遲。

在默認(rèn)權(quán)重配置下,全場景高可用性架構(gòu)會自動選擇最短訪問路徑。

以圖3為例,當(dāng)客戶端從北京七區(qū)發(fā)送讀寫訪問請求時,系統(tǒng)會優(yōu)先將讀寫請求送往北京七區(qū)的數(shù)據(jù)庫代理節(jié)點,北京七區(qū)的數(shù)據(jù)庫代理節(jié)點會進行讀寫分離操作,將讀請求優(yōu)先送往同可用區(qū)的只讀實例,將寫請求送往主實例。

640

圖3:全場景高可用性架構(gòu)-就近訪問能力(簡易版)

4.防閃斷能力

在數(shù)據(jù)庫運維中,會根據(jù)業(yè)務(wù)的需要經(jīng)常對實例進行調(diào)整,例如配置變更、計劃內(nèi)HA切換、計劃內(nèi)重啟等,此類操作往往會中斷會話,導(dǎo)致連接閃斷、新建連接失敗等問題。proxy提供的防閃斷能力就是用來解決此類場景下可能出現(xiàn)的連接問題。當(dāng)proxy感知到計劃內(nèi)的有損行為時,就會與切換前的主節(jié)點斷開連接,將客戶端到proxy上的連接恢復(fù)至切換后主節(jié)點的連接上,通過session track能力將會話相關(guān)的系統(tǒng)變量、用戶變量、字符集編碼信息轉(zhuǎn)移至新的后端連接上,實現(xiàn)對應(yīng)用程序端無損切換。

經(jīng)過測試,在主備切換、內(nèi)核小版本升級、調(diào)整實例規(guī)格的場景下,云數(shù)據(jù)庫MySQL可保持100%的連接保活率。

640

圖4:全場景高可用性架構(gòu)-防閃斷能力

2.3 CPU彈性擴容

CPU彈性擴容是云數(shù)據(jù)庫MySQL最新推出的能力項,指的是基于云環(huán)境通過動態(tài)分配CPU資源,可實現(xiàn)CPU資源的手動/自動調(diào)整和彈性擴展,主打一個快速響應(yīng)和變更。當(dāng)數(shù)據(jù)庫訪問量增加或CPU資源占用率上升時,可以自動添加更多的CPU資源,并在高峰期結(jié)束后自動縮減。這種彈性擴容的方式,能夠使用戶根據(jù)業(yè)務(wù)的需求和業(yè)務(wù)量動態(tài)地配置數(shù)據(jù)庫的CPU資源,從而確保更好的數(shù)據(jù)庫性能、可用性和穩(wěn)定性,提高平臺的彈性和可靠性。

640

圖5:全場景高可用性架構(gòu)-CPU彈性擴容能力-自動擴容(灰度中)

640

圖6:全場景高可用性架構(gòu)-CPU彈性擴容能力-手動擴容(灰度中)

使用CPU彈性擴容的好處主要體現(xiàn)在:

1.彈性控制成本:CPU彈性擴容可以保證在高峰期為用戶提供更加穩(wěn)定的服務(wù),避免由于CPU資源瓶頸造成的性能下降和不可用性問題,同時在業(yè)務(wù)需求下降時又可以自動縮減資源,減少浪費和費用;

2.提高靈活性:彈性擴容可以根據(jù)業(yè)務(wù)需求和用戶量自動調(diào)整CPU資源,大大提高平臺的靈活性和可擴展性。使用彈性擴容功能的數(shù)據(jù)庫系統(tǒng),在彈性調(diào)整過程中能夠更好地適應(yīng)不斷變化的業(yè)務(wù)需求和用戶數(shù)量,從而可以快速擴展或縮小規(guī)模;

3.提高性能和可用性:彈性擴容功能可以根據(jù)實時的CPU使用情況,動態(tài)地調(diào)整CPU資源的分配,以加快數(shù)據(jù)庫的響應(yīng)速度和提高數(shù)據(jù)庫的可用性,從而更好地滿足業(yè)務(wù)需求;

2.4配套生態(tài)工具

1.DBbrain智能管家,7 24h全方位監(jiān)測,第一時間發(fā)現(xiàn)問題定位問題

云數(shù)據(jù)庫MySQL全面接入DBbrain,可實現(xiàn)數(shù)據(jù)庫性能監(jiān)控、安全檢測和優(yōu)化診斷,通過智能分析和建議,協(xié)助用戶快速解決數(shù)據(jù)庫性能和安全問題,提升數(shù)據(jù)庫效率和用戶體驗。具體地,DBbrain可提供KILL會話功能、SQL限流能力、熱點更新保護能力,并且可開啟自治服務(wù),無需人工干預(yù);在診斷分析能力上,DBbrain可提供慢SQL分析、空間分析、SQL優(yōu)化、審計日志分析等能力,7 24h全方位診斷優(yōu)化。

640

圖7:實例詳情頁界面(灰度中)-7 24h智能監(jiān)測

2.混沌演練平臺,全真模擬真實業(yè)務(wù)場景,提前預(yù)知應(yīng)用情況

騰訊云混沌演練平臺可以幫助用戶模擬各種突發(fā)事件和異常場景,提高系統(tǒng)的容錯能力和可靠性。搭建好真實的數(shù)據(jù)庫架構(gòu)后,平臺會對業(yè)務(wù)進行全方位的壓力測試,對傳統(tǒng)的異常場景進行模擬并進行自動化部署管理,從而能夠更好地發(fā)現(xiàn)和診斷系統(tǒng)中的潛在問題,以提升業(yè)務(wù)的質(zhì)量和可靠性。

640

圖8:騰訊云混沌演練平臺-跨可用區(qū)容災(zāi)演練

就近訪問能力

性能測試

為了更好的向讀者展現(xiàn)全場景高可用性架構(gòu)的性能情況,在測試環(huán)境保持一致的條件下,我們做了三組對比測試:

3.1測試環(huán)境

地域:北京-北京六區(qū)、北京七區(qū);

客戶端規(guī)格:CVM,4C16G;

客戶端操作系統(tǒng):TencentOS Server 3.2;

測試實例規(guī)格:主實例通用型4C16G,只讀實例4C16G,數(shù)據(jù)庫代理1.3.5 2核4000MB;

測試實例版本:MySQL 8.0;

測試工具:SysBench 1.0.20;

測試數(shù)據(jù)量:10 tables 100t;

3.2測試詳情

三組對比測試主要用于比較同可用區(qū)部署和跨可用區(qū)部署之間的性能差異,以及數(shù)據(jù)庫代理提供的就近訪問功能的性能情況。

第一組:同可用區(qū)部署

部署搭配為:CVM(七區(qū))+主實例(七區(qū))+數(shù)據(jù)庫代理(七區(qū))+只讀實例(七區(qū))

第二組:跨可用區(qū)部署

部署搭配為:CVM(六區(qū))+主實例(七區(qū))+數(shù)據(jù)庫代理(七區(qū))+只讀實例(七區(qū))

第三組:跨可用區(qū)部署就近訪問

部署搭配為:CVM(六區(qū))+主實例(七區(qū))+數(shù)據(jù)庫代理(六區(qū)、七區(qū))+只讀實例(六區(qū)、七區(qū))

640

圖9:三組對比測試架構(gòu)圖(簡易版)

3.3測試結(jié)果

由于全場景高可用架構(gòu)中的就近訪問能力最突出的性能表現(xiàn)就是降低跨可用區(qū)訪問的響應(yīng)時間(Response Time,RT),我們重點關(guān)注時延的測試結(jié)果。測試結(jié)果如下圖所示,可以看出:就近訪問能力使得跨可用區(qū)部署也能有更低的網(wǎng)絡(luò)延遲,在低并發(fā)下效果更加顯著,就近訪問的響應(yīng)時長最佳可達(dá)到跨可用區(qū)訪問響應(yīng)時長的17%。

640

圖10:只讀場景下,三組對比測試的時延情況

總結(jié)

騰訊云MySQL全場景高可用性架構(gòu)基于跨可用區(qū)部署、異地備份保障與配套生態(tài)工具,搭配數(shù)據(jù)庫代理和彈性CPU能力等多項功能,旨在全方位保障業(yè)務(wù)的穩(wěn)定運行。該架構(gòu)的主要特點包括:

1.跨可用區(qū)部署:采用跨可用區(qū)部署技術(shù),能夠?qū)崿F(xiàn)在多個可用區(qū)分布數(shù)據(jù)庫實例,并通過騰訊云提供的專網(wǎng)互聯(lián)。這樣可以確保單可用區(qū)或單地域的故障不會影響到其他可用區(qū)和地域,在故障時提供更高的業(yè)務(wù)可靠性和穩(wěn)定性。

2.異地備份保障:該架構(gòu)采用異地備份技術(shù),可以將數(shù)據(jù)自動異地備份到多個地域,提供備份的持久存儲,并在主庫數(shù)據(jù)發(fā)生災(zāi)難性故障時,能夠及時恢復(fù)數(shù)據(jù)并處理業(yè)務(wù),從而確保數(shù)據(jù)的安全性和完整性。

3.數(shù)據(jù)庫代理和彈性CPU能力:該架構(gòu)提供數(shù)據(jù)庫代理和彈性CPU能力,可以動態(tài)調(diào)整CPU資源的分配和優(yōu)化數(shù)據(jù)庫訪問,從而提高數(shù)據(jù)處理能力和響應(yīng)速度,緩解數(shù)據(jù)庫壓力和瓶頸問題。

4.生態(tài)工具支持:該架構(gòu)提供多項配套生態(tài)工具支持,包括智能管家DBbrain、混沌演練平臺等,通過分析性能、檢測安全漏洞和解決問題實現(xiàn)監(jiān)控診斷和容錯提升,從而全流程全方位保障業(yè)務(wù)的穩(wěn)定運行。

綜上,騰訊云MySQL全場景高可用性架構(gòu)是騰訊云通過多種技術(shù)手段和服務(wù)保障業(yè)務(wù)穩(wěn)定運行的數(shù)據(jù)庫解決方案,用戶可根據(jù)自己的實際業(yè)務(wù)需求進行合理配置,為業(yè)務(wù)提供更高保障。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:騰訊云數(shù)據(jù)庫
版權(quán)說明:本文內(nèi)容來自于騰訊云數(shù)據(jù)庫,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP