當(dāng)前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

騰訊云TDSQL,從數(shù)據(jù)庫巨人身上撕開一道口子
2021-09-08 12:34:45

金融行業(yè)現(xiàn)狀

目前國內(nèi)大中型銀行主要以國外廠商提供的大型主機和數(shù)據(jù)庫解決方案來進行系統(tǒng)構(gòu)建。由于近年來金融業(yè)務(wù)量的不斷增長,以及銀行數(shù)字化轉(zhuǎn)型成為必然趨勢。目前以國外大型主機和數(shù)據(jù)庫為核心的架構(gòu)已無法滿足大規(guī)模交易和數(shù)據(jù)處理的需求。

一方面:性能無法滿足業(yè)務(wù)不斷激增的處理需求,存在系統(tǒng)過載風(fēng)險;另一方面:本身價格比較昂貴,維護成本居高不下。

以手機銀行、網(wǎng)上理財、互聯(lián)網(wǎng)保險等為代表的金融業(yè)務(wù)創(chuàng)新快速發(fā)展,推動新技術(shù)正以前所未有的速度與力度發(fā)生深層次變革。

這些技術(shù)發(fā)展,對金融服務(wù)模式帶來重大影響,使得金融行業(yè)向數(shù)字化、分布式轉(zhuǎn)型成為必然趨勢,金融業(yè)務(wù)創(chuàng)新與科技創(chuàng)新正在相互促進,重塑金融行業(yè)系統(tǒng)能力。

1、分布式數(shù)據(jù)庫領(lǐng)域的百家爭鳴

| 多種架構(gòu)長期共存:分布式數(shù)據(jù)庫經(jīng)過這么多年的發(fā)展,實際上并不是一種新興的技術(shù)了,從最早基于中間件的模型開始到現(xiàn)在基于分布式存儲的架構(gòu),這些架構(gòu)一直在并存著往前發(fā)展,談不上哪個更優(yōu)秀,因為都各有各的應(yīng)用場景。

| 多種技術(shù)??ㄎ桓偁帲悍植际郊夹g(shù)目前發(fā)展的方向是,技術(shù)棧有兼容MySQL的,也有兼容Oracle的,也有兼容PG的,各技術(shù)?,F(xiàn)在互相卡位,在國內(nèi)的廠商之間,幾乎每個廠商都跟著一條線。

l 廠商互相PK:目前投入的廠家,特別是在這兩年國家對這塊的支持力度和資本介入之下,做分布式數(shù)據(jù)庫的廠家越來越多,形成了互相競爭的關(guān)系。

2、金融客戶應(yīng)該如何選擇分布式數(shù)據(jù)庫

拋開所謂的金融產(chǎn)品的可靠性、可用性等技術(shù)點以外,選擇一個金融分布式數(shù)據(jù)庫最核心的要點我認(rèn)為是以下四方面:

l 質(zhì)量可靠:產(chǎn)品應(yīng)該成熟可靠,經(jīng)過大規(guī)模業(yè)務(wù)持續(xù)驗證,擁有較多的客戶案例和ISV集成經(jīng)歷。

l 團隊建設(shè):建立能用、會用、用好國產(chǎn)數(shù)據(jù)庫的人才隊伍;形成一支具備高水平維護能力的隊伍。

l 持續(xù)演進:背靠優(yōu)質(zhì)平臺或生態(tài),產(chǎn)品可以持續(xù)演進發(fā)展;廠商擁有一流的研發(fā)團隊和長期投入。

l 服務(wù)能力:在國內(nèi)主要地市建立健全分銷體系、培訓(xùn)能力、服務(wù)團隊。不僅包括數(shù)據(jù)庫,更能覆蓋金融全技術(shù)棧的服務(wù)能力。

3、騰訊云分布式數(shù)據(jù)庫解決方案

騰訊云分布式數(shù)據(jù)庫最早源自于騰訊的增值業(yè)務(wù),從充值Q幣開始一直到財富通、微信支付、微眾銀行,騰訊的分布式數(shù)據(jù)庫一直是基于開源的自主研發(fā)。最近幾年我們開始逐漸面向產(chǎn)研結(jié)合和產(chǎn)用結(jié)合,在產(chǎn)研結(jié)合方面我們和國內(nèi)頂級高校建立了聯(lián)合實驗室,也在國際上發(fā)表了多篇頂級論文;在產(chǎn)用結(jié)合方面我們和很多銀行建立了聯(lián)合實驗室,共同促進產(chǎn)品發(fā)展,目前主要應(yīng)用的是我們TDSQL和TBase兩條產(chǎn)品線。

金融應(yīng)用實踐

接下來將分享一個關(guān)于某金融客戶主機下移過程的真實案例,希望能真正給到大家一些啟發(fā)。

拋開細(xì)枝末節(jié),只聚焦在數(shù)據(jù)庫上,我們怎么樣把數(shù)據(jù)庫的核心往下切?當(dāng)時我們總結(jié)出了以下六個問題:

如何選擇分布式技術(shù)棧;

如何設(shè)計信息技術(shù)創(chuàng)新節(jié)奏;

如何使用分布式數(shù)據(jù)庫;

新老系統(tǒng)的切換;

分布式的擴展容災(zāi)方案;

如何對國產(chǎn)數(shù)據(jù)庫進行運維;

1、分布式技術(shù)棧的選擇:對主流方向都有布局和應(yīng)用

對于分布式技術(shù)棧的選擇,目前有兩個主流方向,一個是兼容MySQL,一個是兼容Oracle。

兼容MySQL的優(yōu)勢是其分布式技術(shù)棧比較成熟,易于團隊建設(shè)?;贛ySQL的分布式協(xié)議最早來自于國外的一些互聯(lián)網(wǎng)廠家,后逐漸引入到國內(nèi)的互聯(lián)網(wǎng)廠家,包括國內(nèi)的微信支付、螞蟻金服等幾個巨頭的支付廠家,其底座都是以兼容MySQL協(xié)議為主,再加上這么多年國內(nèi)開發(fā)者對MySQL的研究,所以在此背景之下,金融機構(gòu)的相關(guān)團隊建設(shè)是比較容易成型的。

兼容Oracle的優(yōu)勢是對整個金融系統(tǒng)的改造、遷移、使用成本相對較低,有可復(fù)用的部分并且方案相對簡單。

所以說這兩個技術(shù)棧方向都各有優(yōu)勢,騰訊云因為金融業(yè)務(wù)足夠大所以覆蓋了這兩個方向的產(chǎn)品,都有自己的產(chǎn)品線,我們現(xiàn)在都把它叫做分布式數(shù)據(jù)庫產(chǎn)品線,分別是MySQL技術(shù)棧的以及Postgre技術(shù)棧的產(chǎn)品。

2、技術(shù)創(chuàng)新節(jié)奏

1)某大型銀行客戶的主機下移“五年計劃”

了解過技術(shù)棧的選擇,接下來就是考慮自身團隊適合哪款產(chǎn)品、選擇這款產(chǎn)品后怎么設(shè)計核心系統(tǒng)等。以下是某大型銀行真實計劃的縮影,他們給整個過程設(shè)定了五年計劃原則:

技術(shù)團隊:建立一支熟悉分布式數(shù)據(jù)庫技術(shù)棧的技術(shù)團隊;

分批改造:根據(jù)業(yè)務(wù)重要性,分批分階段改造業(yè)務(wù)系統(tǒng);

業(yè)務(wù)磨合:技術(shù)方案應(yīng)在不影響宏觀穩(wěn)定,確保業(yè)務(wù)與數(shù)據(jù)庫磨合;

技術(shù)復(fù)用:該技術(shù)應(yīng)該是可以復(fù)用或容易建立的;

全量切換:應(yīng)該是在完全磨合好以后,再全量切換。

并且分成四種節(jié)奏開展落地:

2018~2019年,團隊招聘與培養(yǎng):確定基于Oracle+MySQL實現(xiàn)雙技術(shù)棧團隊建設(shè),并選擇互聯(lián)網(wǎng)銀行業(yè)務(wù)選擇開源MySQL方案打磨團隊;

2020年,(試點)核心系統(tǒng)改造:團隊對MySQL熟悉后,實現(xiàn)核心業(yè)務(wù)系統(tǒng)基于騰訊云TDSQL上線并開始運營;

2021年,新老系統(tǒng)并行,剩余系統(tǒng)改造:老業(yè)務(wù)系統(tǒng)不下線,數(shù)據(jù)保證實施同步回老業(yè)務(wù)系統(tǒng),如果新業(yè)務(wù)系統(tǒng)一旦故障確保老系統(tǒng)可用;

2022年,最終核心交易全量切換:在運行一段時間后,確保新系統(tǒng)完全穩(wěn)定后,再封存老系統(tǒng)。

3、數(shù)據(jù)層下移的拆分策略

水平拆分&垂直拆分

在執(zhí)行了相應(yīng)的規(guī)劃以后,就要考慮數(shù)據(jù)庫改造中數(shù)據(jù)層下移的拆分策略。說到水平拆分就不得不提及垂直拆分,垂直拆分一般是在SOA時代,基于業(yè)務(wù)垂直拆分。分布式改造最主要的還是對其中一些業(yè)務(wù)核心戶進行水平拆分,使其能夠適應(yīng)新時代新的科技金融業(yè)務(wù)的發(fā)展。但也并不是所有的系統(tǒng)都需要分布式改造,有些規(guī)模比較小的系統(tǒng)就沒必要。騰訊的產(chǎn)品是集中式和分布式組合在一起的,便于客戶只買一個產(chǎn)品,能滿足幾乎所有數(shù)據(jù)庫的需求。

水平拆分的主要方案主要面向集團,其業(yè)務(wù)是基于分公司維度展開的,主要有幾個特點——業(yè)務(wù)按分公司維度展開;交易/清算等以該維度展開;不同分公司交易規(guī)模區(qū)分明顯;總部搭建業(yè)務(wù)系統(tǒng)和數(shù)據(jù)收口;分公司總數(shù)少但交易數(shù)量多。所以騰訊提供了一種叫虛擬組的能力,可以在分公司分布的基礎(chǔ)上再進行拆分,幫助用戶去提升。比如一個發(fā)展比較快的東南亞分公司,可能原來只需要一個小的分片,兩年后爆發(fā)式增長就可以基于這種架構(gòu)進行快速無縫的擴展。

第三種是按時間維度拆分:如上圖所示,通常是訂單類的系統(tǒng),而且按時間維度會涉及到大促時期呈峰值增長的問題。這種場景下,騰訊的產(chǎn)品可以提供一種二級分區(qū)的能力,可以按照時間分區(qū),這就意味著無論歸到歷史庫也好還是這一時間階段交易規(guī)模比較大也好,都可以均衡地負(fù)載性能。

4、新老系統(tǒng)的切換:DTS-DBBridge

接下來就會涉及到研發(fā),一旦涉及到研發(fā)就要考慮整個業(yè)務(wù)系統(tǒng)遷移的流程。這個流程從最開始的業(yè)務(wù)溝通,騰訊就可以開始介入,騰訊的技術(shù)人員可以通過我們成熟的遷移工具DBBridge輸出對業(yè)務(wù)系統(tǒng)遷移的評估報告,同時配合開發(fā)人員進行業(yè)務(wù)系統(tǒng)改造、實施、新老系統(tǒng)的并行上線以及到最后的切換,整個服務(wù)體系都可以形成一個閉環(huán)。

5、國產(chǎn)數(shù)據(jù)庫的運維:DBBrain&分布式數(shù)據(jù)庫管理系統(tǒng)

遷移完成后就涉及到如何管理數(shù)據(jù)庫,這里涉及到我們另一個方案DBBrain,它能夠幫助用戶從全局角度分析分布式數(shù)據(jù)庫運行的情況,其中積累了騰訊海量的運維經(jīng)驗。

6、分布式多活多SET化擴展容災(zāi)方案

運維起來以后,隨著運行一年到兩年,某些核心就要開始考慮是否要符合監(jiān)管的要求,是否要做兩地三中心和容災(zāi),甚至隨著金融業(yè)務(wù)呈爆發(fā)式發(fā)展,原有的機房已經(jīng)不能滿足需求,需要換多機房方案。

傳統(tǒng)的兩地三中心容災(zāi)方案,從金融科技發(fā)展角度會呈現(xiàn)出一些小問題,比如容災(zāi)需要人工干預(yù),當(dāng)真的面臨事故時,是否敢做切換的決策?實際上很多金融IT從業(yè)者都不敢打包票。另外就是備機房常態(tài)下無流量,利用率較低,所以現(xiàn)在發(fā)展出多活的容災(zāi)方案,簡單來說就是把業(yè)務(wù)系統(tǒng)通過一層網(wǎng)關(guān)進行一個按SET的劃分,每一個SET下面都對應(yīng)一套數(shù)據(jù)庫,這個數(shù)據(jù)庫既可以是集中式也可以是分布式。騰訊里像微信支付,都是使用多SET的模型。

SET的主從之間是采用數(shù)據(jù)庫的強同步,SET與SET之間同類業(yè)務(wù)采用數(shù)據(jù)同步模型,因為上層的SET做了業(yè)務(wù)拆分,所以兩個SET組之間的數(shù)據(jù)是不沖突的,可以互相進行同步。這類架構(gòu)目前也在國內(nèi)的某頭部保險公司,同樣是騰訊云的客戶,已經(jīng)試驗了兩地四中心的架構(gòu),到目前為止已經(jīng)穩(wěn)定運行超過9個月,單個SET能承載的理論容量是10TB,理論TPS是5K以上,而且性能可以基于SET化的分布式擴展往上加,所以SET化可以擴展的能力是很強的。

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務(wù)立即開通 >