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

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

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

架構概述

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

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

640.png

圖1:騰訊云MySQL全場景高可用性架構

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

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

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

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

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

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

配置細節(jié)

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

640

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

2.1高可用架構部署

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.讀寫分離

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

2.獨立訪問

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

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

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

在默認權重配置下,全場景高可用性架構會自動選擇最短訪問路徑。

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

640

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

4.防閃斷能力

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

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

640

圖4:全場景高可用性架構-防閃斷能力

2.3 CPU彈性擴容

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

640

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

640

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

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

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

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

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

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限流能力、熱點更新保護能力,并且可開啟自治服務,無需人工干預;在診斷分析能力上,DBbrain可提供慢SQL分析、空間分析、SQL優(yōu)化、審計日志分析等能力,7 24h全方位診斷優(yōu)化。

640

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

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

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

640

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

就近訪問能力

性能測試

為了更好的向讀者展現(xiàn)全場景高可用性架構的性能情況,在測試環(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:三組對比測試架構圖(簡易版)

3.3測試結果

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

640

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

總結

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

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

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

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

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

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

原文鏈接:點擊前往 >
文章來源:騰訊云數(shù)據(jù)庫
版權說明:本文內容來自于騰訊云數(shù)據(jù)庫,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家