官术网_书友最值得收藏!

2.2.1 某銀行的分布式數據庫實踐

對于金融信息化建設,國內的一些銀行曾經主要依托原有集中型IT架構來進行維護和擴展。隨著系統規模及復雜程度呈指數級增長,各類瓶頸逐漸暴露,日益增長的數字金融需求同舊式的系統架構缺陷之間的矛盾開始凸顯。隨著中國人民銀行、中國銀行保險監督管理委員會等金融監管部門提出相關政策要求,金融企業掀起了分布式轉型的浪潮。

本節示例中的這家銀行是一家全國性商業銀行。在業務和技術創新上,該銀行一直走在業界前列,尤其在人工智能、大數據領域,做出了很多積極嘗試,成效卓然。

1.銀行的分布式轉型需求

來自應用和業務層的壓力,給商業銀行的IT和數據架構帶來新的需求和挑戰,比如向分布式技術架構的轉型,其轉型需求主要體現在如下幾個方面。

● 提升海量數據系統管理的彈性:當商業銀行系統內的數據量急劇增多時,系統需要彈性擴容,以應對PB級別以上的數據管理;而這種彈性的容量調整可以讓所有數據保持在線。

● 提升數據管理系統的性能:針對客戶的實時需求,商業銀行的數據系統需要滿足高并發業務的操作需求——海量數據的超高性能讀/寫及實時訪問查詢。

● 升級數據安全保障:數據安全不僅僅指的是簡單地備份,除了實現數據的持續高可用,還應支持異地容災甚至支持數據中心的“雙活”,即主備兩個數據中心都同時承擔用戶的業務,主備兩個數據中心互為備份,進而保障數據安全。

● 滿足多類型數據處理需求及提升系統效率:在跨業務的融合中,對于從結構化到半結構化再到非結構化的多模數據,亟須進行統一管理,以大幅提升系統效率。

● 簡化開發、運維工作,以節約成本:隨著應用的增多,分布式架構既便于對數據分區進行管理、對業務進行有效隔離,也可以通過保持系統的彈性、兼容性來大大簡化開發和運維工作。

● 對核心業務系統的支撐能力:對于數據庫產品,除了技術先進及能確保數據安全,還要在核心業務上具備代碼級的控制,這樣在針對用戶需求不斷迭代時才能保持產品的穩定性,并提供高效、強力的技術支持。

2.某銀行新一代數據庫的應用

基于應用和業務的轉型需求,新一代分布式數據庫在某銀行有如下一些應用場景。

● 數據庫的分庫分表:針對數據彈性擴容和高性能、高可用性等要求,已實現Oracle、IBM DB2及MySQL數據庫的分庫分表改造,分庫數超過15個,分表數超過500個。

● 傳統數據庫的跨中心分布和雙活:針對IBM DB2等傳統關系型數據庫產品,經過跨中心分布和雙活的改造,其總體安全性、RTO、RPO大為改善,風險降低的同時效率得以提升,操作過程更加簡單、透明;而且由于軟硬件資源利用率的大幅提高,因此節約了建設成本。

● 引入新型分布式數據庫產品:除了對傳統數據庫進行分布式改造,該銀行也積極嘗試SequoiaDB這樣的新型分布式數據庫產品,并在海量數據查詢、分布式影像平臺和歸檔數據管理等在線業務系統中進行大規模部署。

3.分布式數據庫創新實踐

雖然分布式架構改造在該銀行已取得成效,但其業務負載在不斷增大,同時直銷銀行、互聯網金融和人工智能等創新業務需要拓展,分布式數據庫應用也需要向更核心的業務系統推進。當前的技術方案仍存在如下亟待解決的核心訴求。

● 降低偏高的使用和開發、運維成本:分庫分表方案在擴展性和性能、并發上仍有瓶頸,同時開發成本高昂;而且由于需要預先根據業務對數據庫進行切分,因此喪失了較多的彈性,在運維上也需要投入不少人力。此外,MySQL目前在互聯網行業中應用得較廣,許多應用基于其開發,但是目前的分布式數據庫尚未實現與MySQL的完全兼容,因此其投產后實際的使用和運維成本較高。

● 進入核心業務場景:使用開源的數據庫、中間件方案,由于沒有商業化廠商的支持和行業積累,穩定性沒有保障,因此,在進入核心業務系統時存在一定風險。

● 達到國產化要求:在分布式數據庫領域,不能過分依賴國外的開源產品,需要著重考察自主可控的國產分布式數據庫產品。

針對上述訴求,該銀行在分布式NewSQL的創新實踐中,經過測試和對比,最終選擇了巨杉數據庫公司的SequoiaDB。SequoiaDB 3.0版已實現了完整協議級別的MySQL兼容,可以在數據庫層面做到分布式,并且對已有業務完全兼容。同時,SequoiaDB在金融業已經過大規模使用的考驗,在產品的成熟度上更加可靠。

分布式NewSQL數據庫平臺使用SequoiaDB 3.0能體現以下幾個業務優勢。

● 分布式NewSQL數據庫平臺的可擴展性:存儲層的分布式數據引擎,可以實現數據量的彈性擴容,以靈活應對業務需求的調整。

● 微服務架構:整個平臺參考了微服務架構,接入層的SQL實例和存儲層的存儲節點都可以進行自由的配置,而且應用可以按需選擇SQL實例和存儲節點。

● 完全兼容MySQL:接入層實現了協議級的完全兼容,應用可無縫對接,這大大降低了分布式NewSQL數據庫平臺的使用和運維成本。

4.業務場景的測試結果

為了體現NewSQL平臺的優勢,下面選取SequoiaDB在該銀行幾個重要交易場景下的測試數據進行說明。

● 某渠道復雜的查詢場景:此場景以查詢為主,查詢語句較復雜,涉及4張表的關聯。在其中兩張大的流水表的關聯操作中,每張表的記錄數多達數億條,最終的匹配結果多達數百條記錄。通過測試,SequoiaDB在該場景下每分鐘可處理1886184.03筆業務,而且整個過程在如此高的吞吐量下仍然能夠持續保持平穩。

● 柜臺業務辦理場景:此業務以查詢和更新為主,執行頻率高,對響應時間要求高。查詢業務涉及3張表,其中兩張資料表分別有1000萬條、3000萬條數據,維度表的數據有1萬條;更新操作則涉及資料表的1000萬條記錄和維度表的1萬條記錄。在混合查詢和更新的執行過程中,可能出現不同事務對同一條記錄的讀/寫沖突,吞吐量會出現小幅度波動,但平均每分鐘仍然可處理51090.03筆業務。

● 計費業務場景:此業務場景以插入、更新和查詢為主,執行頻率高,對響應時間要求高。其中查詢涉及兩張資料表,記錄數為1000萬條,還涉及兩張維度表,記錄數為3000萬條;插入操作涉及兩張流水表,記錄數分別為3000萬條與900萬條;更新涉及一張維度表與一張流水表,這兩張表的記錄數分別為大于1萬條、大于1億條。該業務場景較為復雜,每筆業務至少涉及對50余個數據庫的插入、更新及查詢操作。盡管如此,SequoiaDB平均每分鐘仍然可處理9861.57筆業務,相比之前,波動較小。

最終的測試結論是,SequoiaDB的MySQL兼容性較為優秀,擴展能力較好,其總體性能滿足重要交易系統的要求。該銀行今后會把現有分庫分表方案難以處理的業務更多地向NewSQL平臺遷移,并持續評估未來大規模使用分布式數據庫的可能性。建設分布式數據庫,能充分發揮NewSQL數據庫的優勢,有助于業務、技術創新,以及積累成功經驗。

主站蜘蛛池模板: 醴陵市| 搜索| 枣阳市| 响水县| 汽车| 溧阳市| 来宾市| 台北县| 玉环县| 伊宁市| 马山县| 阳新县| 同心县| 宁都县| 来宾市| 蒙自县| 乌拉特中旗| 阿拉善右旗| 政和县| 浦东新区| 吐鲁番市| 肥西县| 平乐县| 乃东县| 蒙城县| 天峨县| 河南省| 湘潭市| 榆社县| 申扎县| 长顺县| 衡山县| 贵溪市| 资溪县| 汝城县| 晋江市| 台南县| 始兴县| 东海县| 贵溪市| 开江县|