自主可控?cái)?shù)據(jù)庫(kù)兩地三中心部署的難點(diǎn)和方案思路

本文對(duì)自主可控?cái)?shù)據(jù)庫(kù)在金融行業(yè)尤其是銀行業(yè)多種場(chǎng)景情況下的兩地三中心模式進(jìn)行了探討,并結(jié)合自身實(shí)踐經(jīng)驗(yàn)重點(diǎn)對(duì)典型的交易型數(shù)據(jù)庫(kù)模式進(jìn)行了方案建議,旨在對(duì)正在進(jìn)行自主可控?cái)?shù)據(jù)庫(kù)選型或者實(shí)施的同行有所借鑒。

本文來(lái)自twt企業(yè)IT社區(qū),作者/twt社區(qū)。

【摘要】自主可控?cái)?shù)據(jù)庫(kù)要在金融行業(yè)大規(guī)模應(yīng)用,必須要滿足金融監(jiān)管業(yè)務(wù)連續(xù)性指標(biāo)相關(guān)要求,其中最重要的就是RTO和RPO的要求,自主可控?cái)?shù)據(jù)庫(kù)架構(gòu)必須要具備“兩地三中心”部署能力,以應(yīng)對(duì)機(jī)房級(jí)災(zāi)難時(shí)數(shù)據(jù)不丟失并且能在短時(shí)間內(nèi)對(duì)外恢復(fù)業(yè)務(wù)。本文對(duì)自主可控?cái)?shù)據(jù)庫(kù)在金融行業(yè)尤其是銀行業(yè)多種場(chǎng)景情況下的兩地三中心模式進(jìn)行了探討,并結(jié)合自身實(shí)踐經(jīng)驗(yàn)重點(diǎn)對(duì)典型的交易型數(shù)據(jù)庫(kù)模式進(jìn)行了方案建議,希望對(duì)正在進(jìn)行自主可控?cái)?shù)據(jù)庫(kù)選型或者實(shí)施的同行有所借鑒。

【作者】盧麗歡 銀行系統(tǒng)運(yùn)維經(jīng)理

一、背景

近些年金融行業(yè)IT技術(shù)架構(gòu)更新迭代快,發(fā)展迅速,云平臺(tái)、大數(shù)據(jù)、AI、微服務(wù)、分布式架構(gòu)、敏捷前臺(tái)、統(tǒng)一中臺(tái)等技術(shù)架構(gòu)的發(fā)展很好地契合了金融行業(yè)尤其是銀行未來(lái)業(yè)務(wù)發(fā)展的需求,數(shù)據(jù)庫(kù)作為其中重要環(huán)節(jié)貫穿了整個(gè)前中后端。此外,受復(fù)雜多變的國(guó)際形勢(shì)影響,金融行業(yè)自主可控越來(lái)越迫切,國(guó)產(chǎn)化進(jìn)程逐步進(jìn)入深水區(qū),國(guó)產(chǎn)數(shù)據(jù)庫(kù)作為一項(xiàng)重要基礎(chǔ)研究和應(yīng)用。

自主可控?cái)?shù)據(jù)庫(kù)要在金融行業(yè)大規(guī)模應(yīng)用,必須要滿足金融監(jiān)管業(yè)務(wù)連續(xù)性指標(biāo)相關(guān)要求,其中最重要的就是RTO和RPO的要求,例如,關(guān)鍵業(yè)務(wù)系統(tǒng)RPO=0.RT0<30分鐘,即故障情況下不得丟失數(shù)據(jù),30分鐘內(nèi)對(duì)外恢復(fù)業(yè)務(wù),要做到這些,自主可控?cái)?shù)據(jù)庫(kù)架構(gòu)必須要具備“兩地三中心”部署能力,以應(yīng)對(duì)機(jī)房級(jí)災(zāi)難時(shí)數(shù)據(jù)不丟失并且能在短時(shí)間內(nèi)對(duì)外恢復(fù)業(yè)務(wù)。

二、采用自主可控?cái)?shù)據(jù)庫(kù)的難點(diǎn)分析

國(guó)產(chǎn)數(shù)據(jù)庫(kù)需要進(jìn)行“兩地三中心部署”,需要考慮以下幾個(gè)難點(diǎn):

1) 主從數(shù)據(jù)節(jié)點(diǎn)間數(shù)據(jù)的同步問題

主從數(shù)據(jù)節(jié)點(diǎn)間同步需要考慮同步效率和主備數(shù)據(jù)節(jié)點(diǎn)數(shù)據(jù)一致性之間的平衡,如果采用異步同步模式,主節(jié)點(diǎn)只要將同步數(shù)據(jù)發(fā)出即可釋放計(jì)算資源,同步效率高,但是備節(jié)點(diǎn)可能存在數(shù)據(jù)丟失的風(fēng)險(xiǎn),無(wú)法做到RPO=0;如果采用強(qiáng)同步模式,主節(jié)點(diǎn)將同步數(shù)據(jù)發(fā)送給備節(jié)點(diǎn)后,需要等待備節(jié)點(diǎn)回復(fù)收到同步數(shù)據(jù)的反饋,等待的期間計(jì)算資源被占用無(wú)法釋放,因此同步效率較低。此外,如果備節(jié)點(diǎn)出現(xiàn)異?;蛘呔W(wǎng)絡(luò)異常,主節(jié)點(diǎn)無(wú)法收到反饋,會(huì)直接影響業(yè)務(wù)連續(xù)性。

對(duì)于金融行業(yè)來(lái)說,RPO必須為0.因此必須要采用強(qiáng)同步模式,所以同步的效率需要數(shù)據(jù)庫(kù)廠商進(jìn)行優(yōu)化,實(shí)現(xiàn)效率與異步模式相當(dāng),可以通過在主節(jié)點(diǎn)等待備節(jié)點(diǎn)反饋的期間將會(huì)話暫時(shí)保存,釋放資源等方式實(shí)現(xiàn),所以在數(shù)據(jù)庫(kù)選型時(shí)需要關(guān)注主從實(shí)現(xiàn)的效率和方式。此外,同機(jī)房和同城跨機(jī)房主從同步設(shè)計(jì)時(shí)需要注意,同機(jī)房主從必須要設(shè)置為異步模式,同城跨機(jī)房需要設(shè)置為強(qiáng)同步模式,雖然犧牲了一點(diǎn)同步效率,但能確保跨機(jī)房數(shù)據(jù)RPO=0.做到同步效率和數(shù)據(jù)一致性之間的平衡。同時(shí),為了盡可能減少同城間網(wǎng)絡(luò)抖動(dòng)對(duì)主節(jié)點(diǎn)的影響,建議在備機(jī)房設(shè)置兩個(gè)強(qiáng)同步備機(jī),兩個(gè)強(qiáng)同步備機(jī)使用不同運(yùn)營(yíng)商線路。

2) 全局一致性的問題

分布式數(shù)據(jù)庫(kù)要解決全局一致性問題,需要引入使用全局事務(wù)管理器GTM,負(fù)責(zé)全局事務(wù)的統(tǒng)一管理,每個(gè)事務(wù)都需要從GTM處獲得唯一的全局事務(wù),類似于Oracle的SCN號(hào)以實(shí)現(xiàn)全局MVCC,帶來(lái)的問題就是GTM的效率和可靠性問題。由于所有事務(wù)都需要獲取全局事務(wù)號(hào),隨著業(yè)務(wù)量的增加,GTM節(jié)點(diǎn)會(huì)成為性能瓶頸,而且一旦GTM節(jié)點(diǎn)出現(xiàn)問題,業(yè)務(wù)將中斷,顯然是無(wú)法接受的。因此,GTM需要采取集群可擴(kuò)展模式部署,以解決效率和高可用問題,在數(shù)據(jù)庫(kù)選型和兩地三中心方案設(shè)計(jì)時(shí),必須要考慮該問題,GTM效率和高可用需要重點(diǎn)測(cè)試(性能測(cè)試、破壞性測(cè)試以及業(yè)務(wù)功能測(cè)試等)和論證(針對(duì)數(shù)據(jù)庫(kù)廠商提供的GTM實(shí)現(xiàn)的原理進(jìn)行專家論證),同時(shí)對(duì)比GTM開啟的情況下帶來(lái)的性能損失,最終綜合評(píng)估,在效率和高可用之間尋得最優(yōu)解。

3) 單元化還是分布式數(shù)據(jù)庫(kù)選擇

對(duì)于國(guó)產(chǎn)數(shù)據(jù)庫(kù)在金融行業(yè)尤其是銀行業(yè)的實(shí)施案例來(lái)看,通常有單元化和分布式數(shù)據(jù)庫(kù)兩種部署模式。單元化部署,分布式事務(wù)通常由微服務(wù)架構(gòu)去控制,用戶數(shù)據(jù)通過算法進(jìn)行分庫(kù)分表,共用數(shù)據(jù)通過數(shù)據(jù)同步進(jìn)行匯總,該架構(gòu)把分布式事務(wù)交給了微服務(wù)架構(gòu),而數(shù)據(jù)庫(kù)層面進(jìn)行了分庫(kù)分表,因此數(shù)據(jù)庫(kù)在進(jìn)行兩地三中心部署時(shí),同城機(jī)房?jī)?nèi)均部署全量單元數(shù)的應(yīng)用微服務(wù)架構(gòu)和對(duì)應(yīng)的數(shù)據(jù)庫(kù),同城機(jī)房間數(shù)據(jù)庫(kù)同步采用強(qiáng)同步模式以確保數(shù)據(jù)不丟失,單元化部署適用于業(yè)務(wù)量大的全國(guó)性大行,例如郵儲(chǔ)、微眾以及平安等銀行的核心均采用單元化模式進(jìn)行部署。分布式數(shù)據(jù)庫(kù)模式,對(duì)應(yīng)用而言是邏輯一個(gè)數(shù)據(jù)庫(kù),內(nèi)部數(shù)據(jù)則分節(jié)點(diǎn)存放,所以分布式事務(wù)作為其內(nèi)部事務(wù),用戶不必太關(guān)注分布式事務(wù)的實(shí)現(xiàn),只需要重點(diǎn)做好數(shù)據(jù)在數(shù)據(jù)庫(kù)里的分布設(shè)計(jì),提高其運(yùn)行效率即可。

三、典型兩地三中心方案建議

綜上所述,由于不同的場(chǎng)景、不同的業(yè)務(wù)規(guī)模對(duì)應(yīng)的兩地三中心部署模式有差別,本文接下來(lái)重點(diǎn)探討一個(gè)典型的場(chǎng)景——交易型數(shù)據(jù)庫(kù)場(chǎng)景,典型架構(gòu)圖如下(圖1):

微信圖片_20240909085448.png 

圖1:交易型數(shù)據(jù)庫(kù)場(chǎng)景典型架構(gòu)圖

數(shù)據(jù)庫(kù)由計(jì)算節(jié)點(diǎn)層、存儲(chǔ)節(jié)點(diǎn)層和管控節(jié)點(diǎn)層組成,計(jì)算節(jié)點(diǎn)層主要負(fù)責(zé)應(yīng)用系統(tǒng)的接入和數(shù)據(jù)計(jì)算,存儲(chǔ)節(jié)點(diǎn)主要負(fù)責(zé)實(shí)際數(shù)據(jù)的存儲(chǔ)更新和主從同步,管控節(jié)點(diǎn)負(fù)責(zé)集群的管控,全局事務(wù)的管理,主備切換,故障隔離與恢復(fù),監(jiān)控和自動(dòng)化運(yùn)維相關(guān)事宜。

計(jì)算節(jié)點(diǎn)采用多節(jié)點(diǎn)高可用部署,計(jì)算節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù),只進(jìn)行數(shù)據(jù)計(jì)算和結(jié)果返回,所以單節(jié)點(diǎn)故障不影響其他計(jì)算節(jié)點(diǎn)運(yùn)行。同城兩機(jī)房計(jì)算節(jié)點(diǎn)均部署N臺(tái)(N由具體業(yè)務(wù)量和計(jì)算量確定,N≥2),同城兩機(jī)房均可接入業(yè)務(wù),同時(shí)實(shí)現(xiàn)節(jié)點(diǎn)級(jí)和機(jī)房級(jí)高可用,確保業(yè)務(wù)連續(xù)性。

存儲(chǔ)節(jié)點(diǎn)采取一主多備模式進(jìn)行部署,存儲(chǔ)節(jié)點(diǎn)數(shù)量M由業(yè)務(wù)量確定(M≥1),同步模式采用同機(jī)房異步,同城異機(jī)房強(qiáng)同步模式,以確??鐧C(jī)房數(shù)據(jù)一致性,此外為減少機(jī)房間鏈路抖動(dòng)對(duì)同步的影響,建議同城異機(jī)房設(shè)置兩個(gè)強(qiáng)同步節(jié)點(diǎn)并使用兩種不同運(yùn)營(yíng)商鏈路。故障恢復(fù)方面,當(dāng)主DB出現(xiàn)故障時(shí),系統(tǒng)需要具備自動(dòng)切換到備DB對(duì)外恢復(fù)業(yè)務(wù)的能力,通常在20-30秒左右比較合適,太小的話可能造成性能高峰頻繁誤切,太長(zhǎng)會(huì)導(dǎo)致業(yè)務(wù)影響時(shí)間太長(zhǎng),所以在設(shè)計(jì)時(shí)通??紤]RTO≤30S即可。

管控節(jié)點(diǎn)是需要三機(jī)房部署,單機(jī)房出現(xiàn)故障時(shí)進(jìn)行仲裁,防止出現(xiàn)腦裂情況。

除管控節(jié)點(diǎn)外,異地機(jī)房還需要部署對(duì)應(yīng)的計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn),與本地?cái)?shù)據(jù)庫(kù)實(shí)例進(jìn)行異步同步,應(yīng)用根據(jù)實(shí)際情況在異地機(jī)房部署。

以上場(chǎng)景僅為典型案例,具體情況還有根據(jù)機(jī)房環(huán)境、網(wǎng)絡(luò)條件以及業(yè)務(wù)接入情況等實(shí)際情況進(jìn)行方案調(diào)整。例如很多銀行單位有集中式存儲(chǔ)設(shè)備資源,也可以采用“數(shù)據(jù)庫(kù)+集中式存儲(chǔ)”的架構(gòu)方案搭建,重要類數(shù)據(jù)采用存儲(chǔ)3DC的方式實(shí)現(xiàn)數(shù)據(jù)的物理和邏輯的多副本多重保護(hù)。

四、總結(jié)

本文對(duì)自主可控?cái)?shù)據(jù)庫(kù)在金融行業(yè)尤其是銀行業(yè)多種場(chǎng)景情況下的兩地三中心模式進(jìn)行了探討,并結(jié)合自身實(shí)踐經(jīng)驗(yàn)重點(diǎn)對(duì)典型的交易型數(shù)據(jù)庫(kù)模式進(jìn)行了方案建議,旨在對(duì)正在進(jìn)行自主可控?cái)?shù)據(jù)庫(kù)選型或者實(shí)施的同行有所借鑒。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論