- SequoiaDB分布式數據庫權威指南
- 許建輝 (加)陳元熹
- 3382字
- 2022-05-06 18:40:04
2.2.2 某省級農信社的聯機交易業務應用實踐
隨著移動互聯網的迅猛發展,分布式架構已在互聯網IT技術領域廣泛應用并積累了大量最佳實踐。在互聯網金融快速發展和利率市場化的大環境下,建設能夠支持海量客戶、具有彈性擴展能力、高效靈活的分布式架構應用系統,日益成為國內金融業的迫切需要。
1.分布式數據庫應用是大勢所趨
某省級農信社普惠金融平臺建設旨在“充分運用金融科技手段,優化信貸流程和客戶評價模型,降低企業融資成本,緩解民營企業、小微企業融資難、融資貴問題,增強金融服務實體經濟能力”。與傳統信貸系統不同,普惠金融服務是典型的互聯網應用,具有互聯網場景接入能力。如仍沿用集中式技術架構,在應對海量客戶和控制總成本等方面存在以下潛在問題。
● 集中式架構缺乏彈性伸縮能力:隨著交易量和數據量的增長,其系統整體吞吐量會遇到硬件或技術的瓶頸。尤其是在支持面向互聯網客戶的相關業務時,如不能有效處理瞬時爆發的高并發交易,就會影響客戶獲取及大規模業務營銷。
● 集中式架構采用單體應用設計:軟件開發和運行管理的最小單元是應用。單體應用的管理粒度較粗,容易牽一發而動全身,其開發過程也不易踐行輕量化敏捷開發理念;而且當系統運行過程中出現單點故障時,難以有效進行故障隔離。
● 采購和服務成本高:集中式架構系統的基礎設施通常采用高端的服務器和存儲設備,以及傳統關系型數據庫,其軟硬件成本高昂。而且,其開發和運維對廠商的依賴性較強,服務成本較高。
● 技術體系封閉:部分銀行的IT團隊缺乏自主可控能力,存在信息安全風險。
該省級農信社在規劃新一代普惠金融平臺建設時,從戰略高度對上述問題進行了深入分析與思考,從橫縱兩個角度進行了長遠的研發規劃,即在數據方面著眼于分布式數據庫,在功能層面則引入微服務架構,以求構建真正全方位分布式框架的金融服務底層系統;同時,響應國家關于技術自主可控的號召,選擇國產分布式數據庫,有效控制IT成本和實現技術自主可控。
2.國產分布式數據庫應用實踐
鑒于普惠金融平臺的獲客方式發生了變化,為了滿足客戶申請貸款的爆發式增長,銀行需要在審批方式和流程上有所改變,這對企業征信和智能風控提出了更高的要求。而且,隨著細分領域競爭的加劇,平臺應用需要隨時調整和迭代。經過嚴格評選,該省級農信社最終決定采用SequoiaDB作為底層分布式數據庫平臺。
該平臺應用利用分布式數據庫的計算-存儲層分離技術,將協議解析、計算等模塊與底層存儲解耦——存儲層通過多維分區實現彈性擴展,計算層采用無狀態設計的獨立部署,通過動態增加數據庫實例來線性提升計算能力,以有效應對瞬時爆發的高并發海量交易。
該平臺基于Spring Cloud微服務框架,在業務邏輯上將傳統的單一中間件拆解為眾多微服務組件。分布式數據庫實例服務層提供了可選擇、可適配、可動態伸縮的標準數據庫計算引擎,便于銀行根據應用場景靈活選擇。應用開發采用數據庫分布式計算引擎,面向聯機交易的業務場景采用兼容MySQL的計算實例,批處理業務場景采用兼容SparkSQL的計算實例。該實例通過訪問分布式數據庫的不同數據副本,實現對數據的并行處理和多元利用,即一份數據具有多種用途。
以下是聯機業務應用分布式數據庫的幾個技術要點。
1)分布式架構下的應用設計
分布式數據庫的核心機制是將海量數據通過算法切分到多個分區中。每個數據分區可以分布在不同的物理服務器中,通過網絡設備將這些服務器連接到一起,就可以構成一個邏輯上對外統一的數據庫服務。因此,如何對數據進行均勻切分,以及如何在切分后對數據進行快速檢索,是分布式策略必須優先保障的。
針對分布式數據庫,有如下切分規則。
● 散列(hash)分區:指在數據寫入的過程中,針對指定分區字段的值進行散列后,判斷其數據物理存放分區的規則,如圖2-4所示。

圖2-4 散列分區
● 范圍分區:指在數據寫入的過程中,針對指定分區字段的值判斷其所在范圍,并根據數據所在范圍對應的數據分區判斷其物理位置的規則,如圖2-5所示。

圖2-5 范圍分區
● 多維分區:即散列分區與范圍分區的結合。如圖2-6所示,在多維分區中,用戶在建表時可以指定兩個不同的字段,首先根據第一個字段進行范圍的判定;之后再根據第二個字段,在該范圍所對應的一系列物理服務器中進行散列,以判斷其位置。

圖2-6 多維分區
在新一代普惠金融服務平臺項目中,對于數據庫表結構的設計,該省級農信社面向數據特征有針對性地定義了分區字段與規則,在實踐中這極大地提升了應用的效率與并發能力,避免了傳統架構中數據庫成為性能瓶頸與故障熱點區域的問題。
2)分布式微服務架構下的數據一致性保障
用分布式數據庫系統實現底層業務,會帶來很多傳統集中式數據庫所沒有的特性,比如分布式容錯能力、彈性可擴展能力等。對銀行等金融業來說,這些特性都是至關重要的優化因素。分布式數據庫系統有此優勢,主要緣于其分布式存儲特性,即每個節點保存完整數據庫的一部分,并在其他節點上部署副本。實現這樣的分布式能力,很重要的一環就是一致性策略。
在實踐的過程中,該省級農信社重點研究并解決了行業內公認的難題,即分布式環境下端到端的數據一致性與數據安全,具體方案包含如下兩個方面。
● 利用柔性事務確保微服務之間的數據一致性:通過研究分布式數據庫在銀行領域應用的策略,深入了解分布式底層技術,利用柔性事務TCC(Try-Confirm-Cancel)實現微服務之間的數據一致性。普惠金融平臺基于Spring Cloud微服務框架進行開發,應用程序開發規范明確了每組微服務必須提供TCC接口。遵循針對微服務的分布式事務所提出的RESTful TCC解決方案,結合Spring Cloud Netflix和分布式柔性事務,即可實現微服務之間的數據一致性。
● 在微服務內部通過分布式數據庫技術實現自動化事務的一致性保障:結合普惠金融系統業務數據的特點,合理運用數據多維分區策略,并利用分布式數據庫技術,在二階段提交(2PC)基礎之上,針對異常故障場景,實現自動化事務的一致性保障。
為了保障數據的一致性,需要維護一個全局唯一的ID來區分并發事務,以及標識產生或變更的數據。這樣一個全局唯一的ID,通常需要結合事務發起的時間,并且依賴時間戳加上其他一些標識位來加以實現。SequoiaDB專門設計了一套全分布的邏輯時鐘機制,避免了強制所有參與節點從GTM(Global Transaction/Time Manager)中獲取唯一ID,同時又能滿足分布式存儲和處理的要求。
3)分布式數據庫跨同城數據中心部署
基于分布式數據庫完善的多副本數據同步機制,新一代普惠金融平臺既實現了同城雙中心部署——支持數據的容災與高可用性,也實現了應用跨數據中心運行——當主中心出現災難時,數據零丟失,分布式數據庫自動進行容災切換,應用系統對該操作無感知。圖2-7是該省級農信社普惠金融平臺分布式數據庫應用的雙活部署示意圖。

圖2-7 該省級農信社普惠金融平臺分布式數據庫應用的雙活部署示意圖
3.項目創新成果
分布式數據庫提供了靈活、彈性、便捷、融合的數據服務能力,除了可應對瞬時爆發式業務量增長,還可與微服務架構相結合,為應用的敏捷迭代開發打下良好基礎,幫助金融企業快速推出創新、差異化、跨界的服務和產品。該省級農信社基于此取得了如下成果。
● 分布式架構轉型與金融產品國產化:用SequoiaDB替代國外數據庫產品,避免核心技術綁定問題,實現對底層代碼的完全自主可控。從軟件與硬件兩個方面、性能和效率兩個層面、短期應用的戰術最優化和長遠發展的戰略最優化兩個角度,均實現提升。此外,針對異地災備,通過分布式數據與應用相結合的多活部署策略,應用SequoiaDB產品,為各地農信社和其他金融機構的多活數據中心建設探索出了一條切實可行的道路。
● 分布式環境下端到端的數據一致性:微服務之間的數據一致性用柔性事務保證;微服務內部的自動化事務一致性通過分布式數據庫技術來實現;跨數據中心的數據一致性與高可用性問題,用分布式數據庫的多活體系來解決。通過在虛擬化云環境中完成微服務框架下分布式系統的多層次數據一致性,進而實現高效的彈性擴展、事務處理的最終一致性、微服務級別的數據保障及多活異地容災等優良特性,該省級農信社為金融系統的升級與變革提供了強大動力和發展潛力。
● 實現社會效益與經濟效益的最大化:通過對行業的深度調研,對互聯網融資業務的共性進行提煉,基于彈性多層次混合系統,推出一個強大、穩定的普惠金融平臺,集客戶賬戶、產品創新、全周期核算、業務自動化審批、智能風控等于一體。該平臺的金融差異化配置、跨界產品整合、服務交互、產品核算等功能,不僅為客戶提供了一攬子普惠金融、互聯網融資服務,而且為企業互聯網金融業務的快速發展打下了堅實的基礎。