TiDB 實戰分享丨第三方支付企業的核心數據庫升級之路

本文介紹了一家第三方支付企業在面對市場競爭和監管壓力的態勢下,通過升級核心數據庫來提升業務能力的實踐。該企業選擇 TiDB 分佈式數據庫,成功將其應用於核心業務、計費、清結算和交易查詢等關鍵系統。TiDB 的水平擴展能力、高可用性和簡化數據棧等優勢,使該企業在處理高併發交易和保障數據安全方面取得了顯著進展,提升了業務處理的敏捷性,同時降低了運維複雜度 。

在數字時代,網絡購物已經成爲人們生活的重要組成部分,第三方支付行業迎來了前所未有的發展機遇。 第三方支付是指第三方支付機構在付款人與收款人之間提供的銀行卡收單、網絡支付和預付卡的發行與受理,以及人民銀行確定的其他貨幣資金轉移服務。 在網絡購物、社交紅包、線下掃碼等多元化場景的推動下,中國第三方支付市場憑藉便捷、高效、安全的支付體驗,領先於全球。

業務挑戰驅動數據庫升級

某頭部第三方支付企業是一家金融科技公司,擁有全面的支付牌照,爲用戶提供安全、便捷的支付和金融服務。用戶可以通過移動應用、POS 終端、網站等多種渠道進行支付和轉賬。除支付服務以外,該企業還提供票務預訂、充值繳費等多元化金融服務。

面對支付平臺層出不窮、市場競爭異常激烈的局面,第三方支付企業在監管日益嚴格的背景下,紛紛聚焦產品質量提升,打造差異化競爭優勢,探索服務模式創新。隨着人工智能、區塊鏈、數字貨幣等新興技術的融合與應用,如何提升刷臉支付、聲紋支付、車載支付等新興支付的交易處理效率,持續拓寬新興支付方式的切入場景並優化用戶體驗,成爲第三方支付企業提升市場份額和競爭力的重要抓手。

爲了更好地滿足多變環境下業務高速發展的需求,該支付企業於 2020 年開始探索分佈式數據庫。經過充分的調研測試,TiDB 數據庫憑藉其原生分佈式架構、應用的無侵入性和獨立數據庫廠商的中立性贏得了該企業的信任。從 2020 年開始, 該企業逐步將 TiDB 數據庫應用於業務核心、計費、交易查詢、清結算等多個核心繫統。經過三年多的深入實踐,目前核心繫統運行平穩,不僅提升了業務的處理能力和敏捷性,還大幅降低了運維複雜度。截止到 2023 年 7 月, 該企業已上線 100 多個 TiDB 節點,投產超過 50% 的核心業務。

業務核心系統的數據庫升級經歷了四個階段:

 代碼改造 :整個核心系統基礎架構的迭代遵循技術領先和開源透明的思路,新的業務系統基於 MySQL 兼容的數據庫進行業務改造,充分利用數據庫的內核能力,避免對單一產品形成過度依賴和綁定。

 並行驗證 :實際生產流量跑在原有數據庫 Oracle,通過網關把所有流量在 TiDB 回放,主要驗證 TiDB 數據庫性能及承載業務壓力的穩定性,該階段運行時間 6 個月。

 流量切換 :核心業務的流量逐步按比例遷移到 TiDB,歷時一個月左右,成功將近億級別的全量交易切換到 TiDB。第三方支付企業的交易生命週期包括交易發生、計費、清算、結算、查詢統計等環節,面向交易客戶、商戶、清算機構等羣體。由於交易鏈路長且複雜,爲了更好地把控風險和確保業務可回退,整個遷移過程中,將遷移到 TiDB 的流量在 Oracle 側進行回放。

 

業務流量切換示意圖

● 下游改造:將原先由多個 Oracle 實例通過 ETL、CDC 和業務寫入等多種方式匯聚到 TiDB 集羣中,提供包括清 算,結算,計費,商戶交易統計查詢等服務。

TiDB 在覈心繫統的應用

1 業務核心

業務核心是該企業的核心業務集羣,負責存儲並處理所有核心交易數據,包括各種掃碼渠道和 POS 刷卡交易。每日交易筆數達到億級別,呈現出明顯的商戶交易高低峯分佈,涵蓋了早、中、晚三個高峯時段。爲了滿足監管機構的要求,需要確保三方支付所有歷史交易數據的可追溯性。由於原先公有云上的 RDS 數據庫受到性能和容量的限制,處理能力無法達到預期,因此該企業選擇使用 TiDB 替換公有云的 RDS 數據庫。

TiDB 原生分佈式架構設計,可以根據業務實際情況,靈活擴展計算或者存儲節點,提供多副本的讀寫能力來解決讀吞吐問題,提升響應延遲,優化 C 端和 B 端用戶的使用體驗。從上線至今,業務核心處理的數據量已接近 100 TB,日常交易高峯峯值 QPS 達到 60,000+,交易 99 線延遲穩定在 60 毫秒左右,充分展現了 TiDB 在規模化場景下出色的 OLTP 性能。

業務核心架構示意圖

2 計費

支付行業的計費系統扮演着至關重要的角色,專門用於處理交易、計算費用並生成賬單,與支付交易共同構成了支付生態的兩翼。計費系統以嚴謹的邏輯和高效的算法,確保費用計算的準確無誤。同時,它以清晰易懂的方式呈現賬單信息,讓用戶和商戶一目瞭然。目前整個計費數據庫的 99 平均延遲穩定在 4ms 左右,峯值 QPS 10K,TPS 5 K,TiDB 完美的在一套系統中同時滿足了高頻的交易請求和實時的分析業務需求,有效保證了計費的時效和準確性。

3 清結算

清結算是金融機構用於處理交易結算和清算的系統。清算指按照約定的規則,計算並覈實參與方的債權和債務關係,最終確定支付的義務;而結算則是履行清算結果,完成實際的支付過程。清結算系統的關鍵任務是確保交易的安全、準確和及時,包括處理交易、計算費用、生成結算單據以及實際的資金轉移。TiDB 的水平擴展能力能夠較好地應對清結算對於數據併發寫入和瞬時 100K 的查詢需求。

4 交易查詢平臺

爲滿足海量交易數據的查詢需求,該支付企業構建了首個 TiDB 集羣作爲交易查詢平臺。該平臺經歷了從多個上游 Oracle 數據庫同步到一套龐大中心化 Oracle 數據庫的演進。然而,傳統的中心化數據庫體系無法滿足該支付企業日益增長的交易數據量和擴展性需求,該支付企業將 Oracle 數據遷移到 TiDB 分佈式數據庫集羣。同時,利用 TiDB 提供的 TiCDC 工具將數據同步到 Kafka 消息系統,實現了實時數據更新和多維度分析。

交易查詢平臺數據流轉示意圖

升級後,該支付企業交易查詢平臺在寬表組合、多表數據關聯、多列數據截取等複雜操作方面展現出更爲靈活的能力。TiDB 原生分佈式架構使得平臺能夠高效地處理海量交易數據。同時,TiCDC 工具確保了數據同步的實時性和可靠性。得益於 TiDB 和 TiCDC 的加持,交易查詢平臺實現了多維度數據查詢和分析能力的提升,爲商戶和內部管理提供了更全面、更精準的數據分析服務。通過實時獲取業務洞察,企業能夠做出更敏捷的業務響應,提升市場競爭力。

爲什麼選擇 TiDB?

從過去三年該支付企業使用 TiDB 的實踐經驗來看,TiDB 帶來的具體收益包括:

 水平擴展能力

業務快速發展背景下,傳統單機數據庫難以應對高併發讀寫請求,性能無法水平擴展。分庫分表方案的實施往往需要對業務進行大量的改造,帶來了不小的成本和風險。原生分佈式數據庫具備靈活的彈性伸縮能力,可匹配業務的特點分別或同時擴展計算能力與存儲能力。在引入 TiDB 之前,爲確保核心業務系統的穩定運行,企業經常需要定期清理歷史數據,過程繁瑣且容易造成數據丟失。TiDB 的自動均衡能力有效解決了該問題,並滿足了監管要求。

 原生高可用能力

從刷卡收單、計費到後續的清結算和交易查詢,每個環節都至關重要。TiDB 集羣內部各個組件採用冗餘設計,避免單機故障,存儲節點默認採用 3 副本,通過 Multi Raft 協議保證各副本數據的一致性和高可用性。在 TiDB 集羣之間,可通過 TiCDC 或者 TiDB binlog 的方式搭建災備集羣保障集羣級別的高可用。TiDB 強大的高可用能力爲用戶提供更爲可靠和穩定的交易體驗。

 簡化數據棧,降低成本

TiDB 用一個數據平臺滿足實時交易與實時分析的場景需求,通過豐富的技術生態實現與 Oracle、DB2 等傳統數據庫的打通,實現與 Hadoop、Spark、Flink、Kafka 等大數據技術棧的廣泛融合,爲上層業務提供統一數據服務,在簡化企業數據棧的同時大幅降低維護成本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章