銀行分布式系統(tǒng)轉(zhuǎn)型實踐_第1頁
銀行分布式系統(tǒng)轉(zhuǎn)型實踐_第2頁
銀行分布式系統(tǒng)轉(zhuǎn)型實踐_第3頁
銀行分布式系統(tǒng)轉(zhuǎn)型實踐_第4頁
銀行分布式系統(tǒng)轉(zhuǎn)型實踐_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 銀行分布式系統(tǒng)轉(zhuǎn)型實踐目錄 TOC o 1-3 h z u HYPERLINK l _Toc501021483 一、實現(xiàn)數(shù)據(jù)持久化層的分布式處理 PAGEREF _Toc501021483 h 3 HYPERLINK l _Toc501021484 1.實時一致的分布式事務(wù)控制功能 PAGEREF _Toc501021484 h 4 HYPERLINK l _Toc501021485 2.高并發(fā)交易處理功能 PAGEREF _Toc501021485 h 4 HYPERLINK l _Toc501021486 3.在線數(shù)據(jù)重分布功能 PAGEREF _Toc501021486 h 4 HYP

2、ERLINK l _Toc501021487 4.全局一致的備份和恢復(fù)功能 PAGEREF _Toc501021487 h 5 HYPERLINK l _Toc501021488 5.與應(yīng)用深度結(jié)合找尋C與A最佳平衡點 PAGEREF _Toc501021488 h 5 HYPERLINK l _Toc501021489 二、打造分布式系統(tǒng)上下游生態(tài)環(huán)境 PAGEREF _Toc501021489 h 6 HYPERLINK l _Toc501021490 1.應(yīng)用數(shù)據(jù)采用分庫技術(shù) PAGEREF _Toc501021490 h 6 HYPERLINK l _Toc501021491 2.面向

3、分布式系統(tǒng)的開發(fā)平臺 PAGEREF _Toc501021491 h 7 HYPERLINK l _Toc501021492 3.實施Devops體系 PAGEREF _Toc501021492 h 8 HYPERLINK l _Toc501021493 4.分布式應(yīng)用系統(tǒng)運維 PAGEREF _Toc501021493 h 9 HYPERLINK l _Toc501021494 三、分布式系統(tǒng)生態(tài)的可持續(xù)發(fā)展 PAGEREF _Toc501021494 h 10 HYPERLINK l _Toc501021495 1.內(nèi)外部力量結(jié)合掌控開源技術(shù) PAGEREF _Toc501021495 h

4、 10 HYPERLINK l _Toc501021496 2.聯(lián)合建立銀行業(yè)的開源社區(qū) PAGEREF _Toc501021496 h 10針對開源技術(shù)自主掌控的難題,建議建立中國銀行業(yè)的開源軟件同盟,利用產(chǎn)業(yè)鏈的力量,確保開源軟件使用的安全性、功能的健壯性和維護(hù)的可持續(xù)性,為銀行定制,為銀行所用;銀行與供應(yīng)商共同建設(shè)和維護(hù)為銀行科技服務(wù)的開源社區(qū)生態(tài)環(huán)境,主導(dǎo)開源社區(qū)的發(fā)展方向,維護(hù)獨立的版本分支,讓開源軟件為銀行服務(wù),而不是銀行削足適履去適應(yīng)開源軟件。在安全可控的國家戰(zhàn)略、海量高并發(fā)的訪問需求、節(jié)約化經(jīng)營模式的轉(zhuǎn)變等內(nèi)外部因素共同作用下,商業(yè)銀行正面臨著IT架構(gòu)轉(zhuǎn)型的任務(wù)。隨著開源開放的

5、分布式技術(shù)逐漸成熟,并在互聯(lián)網(wǎng)企業(yè)中得到充分驗證,為商業(yè)銀行開展IT架構(gòu)轉(zhuǎn)型提供了技術(shù)保障,商業(yè)銀行開展分布式架構(gòu)轉(zhuǎn)型勢在必行。傳統(tǒng)的商業(yè)銀行信息系統(tǒng)有兩大類型:交易型系統(tǒng)和管理分析型系統(tǒng),從集中式向分布式轉(zhuǎn)型,是一個復(fù)雜的過程,尤其是銀行賬務(wù)處理相關(guān)的交易型系統(tǒng)。交易型系統(tǒng)平臺從操作系統(tǒng)來看有幾種:IBMOS390、IBMAS400、UNIX、LINUX。第一種和第二種為IBM封閉的集中式系統(tǒng),第一種雖然有Sysplex并行耦合體架構(gòu),但是數(shù)據(jù)持久化層仍然是集中式的;第三種和第四種為開放平臺,普遍采用三層架構(gòu),即接入層、應(yīng)用層和數(shù)據(jù)持久化層,接入層和應(yīng)用層在技術(shù)上已經(jīng)具備了“無狀態(tài)”特性,廣

6、泛使用分布式集群模式,而數(shù)據(jù)持久化層卻依然保持傳統(tǒng)集中式架構(gòu)。因為數(shù)據(jù)是“有狀態(tài)的”,數(shù)據(jù)的分布式會帶來數(shù)據(jù)一致性等許多復(fù)雜問題,所以商業(yè)銀行開展分布式架構(gòu)轉(zhuǎn)型的難點在于核心交易系統(tǒng)的數(shù)據(jù)持久化層的分布式轉(zhuǎn)型。一、實現(xiàn)數(shù)據(jù)持久化層的分布式處理商業(yè)銀行的核心交易系統(tǒng)要做成分布式系統(tǒng),需要一個適合銀行應(yīng)用特點的分布式數(shù)據(jù)庫,以支持核心交易系統(tǒng)沉淀了多年的成熟穩(wěn)定的業(yè)務(wù)處理邏輯保持不變。根據(jù)銀行應(yīng)用特點,我們認(rèn)為適合銀行交易系統(tǒng)的分布式數(shù)據(jù)庫,在關(guān)系型數(shù)據(jù)庫基礎(chǔ)上,必須具備分布式事務(wù)實時一致性、高并發(fā)的交易處理、在線數(shù)據(jù)重分布以及全局一致性的備份和恢復(fù)功能。除此之外,由于CAP理論無法突破,我們還要

7、與應(yīng)用深度結(jié)合找尋C與A的最佳平衡點。1.實時一致的分布式事務(wù)控制功能分布式數(shù)據(jù)庫必須具備實時一致性事務(wù)控制能力,滿足銀行業(yè)務(wù)對數(shù)據(jù)實時一致性的要求。首先,分布式數(shù)據(jù)庫的原理是依靠多個獨立數(shù)據(jù)庫節(jié)點通過網(wǎng)絡(luò)連接協(xié)同工作,任何一個節(jié)點和網(wǎng)絡(luò)都有可能出現(xiàn)故障,這是分布式數(shù)據(jù)庫區(qū)別于傳統(tǒng)集中式數(shù)據(jù)庫的最大特點,這就造成了“局部故障”概率大大增加;其次,客戶在銀行辦理業(yè)務(wù)時,不會接受每次查詢看到自己的賬戶數(shù)據(jù)不準(zhǔn)確,這會影響用戶體驗,這就是銀行業(yè)務(wù)必須實時一致的原因;最后,現(xiàn)有的銀行應(yīng)用系統(tǒng)均基于集中式數(shù)據(jù)庫實現(xiàn),應(yīng)用程序不需要過多考慮事務(wù)處理,如果分布式數(shù)據(jù)庫不提供分布式事務(wù)能力,遷移成本和開發(fā)成本

8、均會大大增加,實施難度也增大。因此,實時一致性的分布式事務(wù)控制能力是分布式數(shù)據(jù)庫必須具備的功能。2.高并發(fā)交易處理功能分布式數(shù)據(jù)庫必須具備高并發(fā)交易處理能力,滿足海量客戶交易需求。隨著物聯(lián)網(wǎng)、互聯(lián)網(wǎng)金融、雙十一秒殺等技術(shù)和消費場景的出現(xiàn),銀行業(yè)務(wù)并發(fā)交易量有了極大的增加,對銀行應(yīng)用系統(tǒng)的并發(fā)交易處理能力提出了更高的要求。分布式數(shù)據(jù)庫作為應(yīng)用系統(tǒng)新的數(shù)據(jù)持久化層解決方案,在處理好分布式事務(wù)實時一致的同時,必須增加并發(fā)處理能力,縮短平均響應(yīng)時間,滿足海量高并發(fā)處理需求。3.在線數(shù)據(jù)重分布功能分布式數(shù)據(jù)庫必須提供在線數(shù)據(jù)重分布能力,滿足擴(kuò)容的需要。分布式數(shù)據(jù)庫區(qū)別于集中式數(shù)據(jù)庫的最大優(yōu)勢是可以通過增

9、加數(shù)據(jù)節(jié)點數(shù)量獲得處理能力的線性增長。但增加數(shù)據(jù)節(jié)點數(shù)量就涉及到數(shù)據(jù)的搬遷移動,即數(shù)據(jù)重分布,數(shù)據(jù)重分布期間對相應(yīng)數(shù)據(jù)的訪問一定會受到影響。對于724小時的應(yīng)用來說,在線的數(shù)據(jù)重分布是分布式數(shù)據(jù)庫必須具備的功能。4.全局一致的備份和恢復(fù)功能分布式數(shù)據(jù)庫必須提供全局一致的備份和恢復(fù)功能,以確保數(shù)據(jù)隨時可恢復(fù)。線上運行的數(shù)據(jù)庫雖然具有回滾等功能,但對于已經(jīng)提交的誤刪除操作,數(shù)據(jù)庫是沒有辦法阻止和回退的,這種情況下只能通過前期數(shù)據(jù)庫備份鏡像和前滾日志按時點進(jìn)行恢復(fù)。分布式環(huán)境下,由于各個數(shù)據(jù)節(jié)點備份開始和結(jié)束的時間點不可能完全一致,導(dǎo)致恢復(fù)后的數(shù)據(jù)庫全局很難保持一致狀態(tài)。因此,分布式數(shù)據(jù)庫必須提供全

10、局一致的備份和恢復(fù)功能,滿足業(yè)務(wù)恢復(fù)的需要。5.與應(yīng)用深度結(jié)合找尋C與A最佳平衡點之所以說分布式架構(gòu)中最大的技術(shù)難點在于“數(shù)據(jù)持久化層”的分布式改造,原因在于數(shù)據(jù)分布之后在滿足高性能前提下實現(xiàn)全局ACID特性是不現(xiàn)實的,著名的CAP理論闡述的就是這個限制,即數(shù)據(jù)一致性C、數(shù)據(jù)可用性A和分區(qū)容錯性P三者不能同時滿足。在這三者之中,分區(qū)容錯性P是必須滿足的,因此只能在C和A之間進(jìn)行選擇。但銀行業(yè)務(wù)特點又要求必須保證數(shù)據(jù)的實時一致性以及高并發(fā)場景下的數(shù)據(jù)可用性,這與CAP理論是矛盾的,所以我們必須將分布式數(shù)據(jù)庫與應(yīng)用深度結(jié)合,如多級分片的策略制定、分布式Join、數(shù)據(jù)分頁等,有些數(shù)據(jù)庫無法解決的問題

11、,由應(yīng)用去解決,找到C和A的最佳平衡點,發(fā)揮分布式技術(shù)優(yōu)勢,達(dá)到系統(tǒng)最佳的擴(kuò)展性。二、打造分布式系統(tǒng)上下游生態(tài)環(huán)境要實現(xiàn)分布式架構(gòu)轉(zhuǎn)型這個任務(wù),只有分布式數(shù)據(jù)庫是不夠的,應(yīng)用系統(tǒng)還需要支持分庫的設(shè)計,才能實現(xiàn)數(shù)據(jù)庫的橫向擴(kuò)展能力。另外,我們還需要適合分布式架構(gòu)的開發(fā)工具和智能運維,形成分布式數(shù)據(jù)庫的生態(tài)環(huán)境。1.應(yīng)用數(shù)據(jù)采用分庫技術(shù)分布式數(shù)據(jù)庫實現(xiàn)分布式架構(gòu)下的數(shù)據(jù)持久化功能,業(yè)務(wù)系統(tǒng)還需要采用分庫的設(shè)計,才能支撐大型系統(tǒng)在分布式架構(gòu)下的橫向擴(kuò)展能力。主機(jī)集中式架構(gòu)和開放集中式架構(gòu)的銀行核心系統(tǒng)有個共同的特點是單一數(shù)據(jù)庫系統(tǒng),規(guī)模龐大、功能繁雜,經(jīng)過多年的業(yè)務(wù)邏輯沉淀形成了相對穩(wěn)定成熟的業(yè)務(wù)處

12、理功能,我們在進(jìn)行分布式系統(tǒng)改造時,盡可能使這些成熟穩(wěn)定的業(yè)務(wù)功能保持不變,把系統(tǒng)改造的工作量降到最低。需要采用分庫的設(shè)計,把同一個數(shù)據(jù)表分布到各個節(jié)點的庫中,邏輯上是一個數(shù)據(jù)庫,物理上是多個數(shù)據(jù)庫,使數(shù)據(jù)能夠橫向擴(kuò)展,才能支撐大型系統(tǒng)在分布式架構(gòu)下的橫向擴(kuò)展能力。大型互聯(lián)網(wǎng)企業(yè)使用SBF數(shù)據(jù)分布模型(S分區(qū)鍵,B數(shù)據(jù)桶,F(xiàn)amily表族)對業(yè)務(wù)數(shù)據(jù)庫進(jìn)行分庫分表,其核心思想是應(yīng)用數(shù)據(jù)邏輯態(tài)與物理態(tài)的隔離,從而實現(xiàn)高可用和故障隔離。我們針對銀行應(yīng)用的特點,采用數(shù)據(jù)庫分庫的技術(shù),即把同一個數(shù)據(jù)表的記錄拆分到多個數(shù)據(jù)庫中,設(shè)計分片鍵和算法,使傳統(tǒng)的一個數(shù)據(jù)庫變成多個數(shù)據(jù)庫的集群,實現(xiàn)數(shù)據(jù)庫的擴(kuò)展能

13、力。針對銀行業(yè)務(wù)的復(fù)雜性,采用多級分片的技術(shù)進(jìn)行數(shù)據(jù)庫分庫設(shè)計。汲取互聯(lián)網(wǎng)行業(yè)經(jīng)驗,同時要支持分布式事務(wù),針對銀行業(yè)務(wù)數(shù)據(jù)表的特點,以客戶號作為主分片鍵,與某一客戶相關(guān)的所有業(yè)務(wù)數(shù)據(jù)都分布在同一個數(shù)據(jù)庫中,盡可能減少分布式事務(wù)的產(chǎn)生。根據(jù)銀行交易系統(tǒng)的特性,采用以下三種分庫策略:(1)參數(shù)類表的數(shù)據(jù)量小,將其放在同一個數(shù)據(jù)庫分區(qū)中,不僅性能完全可以滿足要求,而且還歸避了分布式事務(wù)的發(fā)生。對于讀多寫少的參數(shù)表,使用分布式緩存提高訪問性能。(2)流水類大表的數(shù)據(jù)量會不斷地增長,將其按照主鍵進(jìn)行hash分布到多個數(shù)據(jù)庫分區(qū)中。這類表還有一個特點是插入數(shù)據(jù)場景遠(yuǎn)遠(yuǎn)多于更新,基本沒有分布式事務(wù)。(3)業(yè)

14、務(wù)主表存在分布式事務(wù),例如賬戶之間轉(zhuǎn)賬的場景,統(tǒng)一采取客戶號為主分片鍵的策略。2.面向分布式系統(tǒng)的開發(fā)平臺為了降低分布式應(yīng)用項目的開發(fā)成本,需要一個面向分布式架構(gòu)的開發(fā)平臺,結(jié)合分布式數(shù)據(jù)庫、分布式緩存、微服務(wù)框架、服務(wù)管理和發(fā)布流程等方面做統(tǒng)一的集成和接口封裝,支持分布式應(yīng)用的開發(fā)和管理。(1)分布式數(shù)據(jù)庫和分布式緩存接口封裝首先,分布式數(shù)據(jù)庫要支持JAVA語言定義的標(biāo)準(zhǔn)數(shù)據(jù)庫編程接口,結(jié)合底層數(shù)據(jù)節(jié)點(比如Mysql)的驅(qū)動程序,使用驅(qū)動程序的負(fù)載均衡功能,實現(xiàn)一個應(yīng)用可連接多個數(shù)據(jù)庫,從而增強數(shù)據(jù)庫訪問的高可用。其次,將用戶登陸等狀態(tài)數(shù)據(jù)存儲在分布式緩存,應(yīng)用服務(wù)實現(xiàn)無狀態(tài)。針對分布式緩

15、存實現(xiàn)標(biāo)準(zhǔn)接口,屏蔽本機(jī)緩存、單機(jī)和集群差別,簡化應(yīng)用調(diào)用,支持直接將內(nèi)存對象序列化后存儲在緩存中。(2)使用微服務(wù)開發(fā)框架實現(xiàn)服務(wù)拆分從應(yīng)用層面進(jìn)行微服務(wù)改造,將傳統(tǒng)的粗粒度的業(yè)務(wù)單元拆分為可獨立交付的細(xì)粒度業(yè)務(wù)單元,借助微服務(wù)開發(fā)框架,解耦應(yīng)用模塊,簡化配置操作。改造后的小業(yè)務(wù)模塊可以快速獨立地開發(fā)、測試、部署和運行,降低變更影響范圍和測試驗證工作量,適應(yīng)敏捷的開發(fā)方式,提高交付速度。(3)基于開源軟件搭建分布式服務(wù)架構(gòu)基礎(chǔ)設(shè)施基于開源軟件搭建分布式架構(gòu)基礎(chǔ)設(shè)施是互聯(lián)網(wǎng)行業(yè)的通用做法,極大地簡化了服務(wù)的開發(fā)、部署和運行效率。首先,利用服務(wù)治理中心可以實現(xiàn)服務(wù)的注冊發(fā)現(xiàn)和故障轉(zhuǎn)移;其次,通過

16、API網(wǎng)關(guān)的能力,整合所有服務(wù),形成統(tǒng)一出口;最后,通過服務(wù)檢測機(jī)制,實現(xiàn)服務(wù)自動負(fù)載均衡路由能力以及異常情況下服務(wù)的熔斷。3.實施Devops體系分布式架構(gòu)的實施需要新的Devops體系的支持,增強團(tuán)隊之間協(xié)作性和高效性,消除開發(fā)與運維團(tuán)隊之間的鴻溝;分布式架構(gòu)的技術(shù)特征適應(yīng)微服務(wù)框架和敏捷式開發(fā)方法,也要求應(yīng)用系統(tǒng)具備快速迭代的持續(xù)部署能力,縮小每次投產(chǎn)的影響范圍,降低系統(tǒng)運行風(fēng)險,這是傳統(tǒng)的“開發(fā)和運行分離的體系“無法支持的。新的Devops體系實現(xiàn)開發(fā)團(tuán)隊和運行團(tuán)隊的協(xié)作,依靠簡明、自動化的流程和工具,提升組織的效率,讓研發(fā)人員有運維意識,讓運維人員掌握設(shè)計思路,提高交付產(chǎn)品的可維護(hù)性

17、?;贒evOps理念,借助容器云的系統(tǒng)規(guī)劃、場景設(shè)計、產(chǎn)品選型和測試,將銀行的實際需求和容器最佳實踐相結(jié)合,在微服務(wù)、應(yīng)用容器化改造、彈性擴(kuò)展、灰度發(fā)布、提供標(biāo)準(zhǔn)化、敏捷化的開發(fā)交付能力。借助IaaS平臺實現(xiàn)強健穩(wěn)定、按需分配、彈性擴(kuò)展、快速部署、開源開放的基礎(chǔ)架構(gòu)平臺,為PaaS平臺建設(shè)提供堅實的技術(shù)支撐,并進(jìn)行SDN對接,存儲自動化管理等工作,繼續(xù)推進(jìn)計算、存儲、網(wǎng)絡(luò)等資源池化,并優(yōu)化云管理調(diào)度平臺,實現(xiàn)全生命周期管理。4.分布式應(yīng)用系統(tǒng)運維為了實現(xiàn)分布式數(shù)據(jù)庫大規(guī)模集群環(huán)境的運維管理,必須具備一套運維工具,實現(xiàn)自動化部署、統(tǒng)一指標(biāo)和日志監(jiān)控、運維管理工作臺、數(shù)據(jù)庫版本滾動升級等管理和維

18、護(hù)功能,使運維自動化、工具化,降低運維難度,提高運維工作效率。(1)自動化部署分布式數(shù)據(jù)庫集群動輒有幾十甚至上百臺節(jié)點,上線部署工作復(fù)雜,需要配置自動化部署工具,在各個集群節(jié)點之間同步程序包和配置項,在降低部署工作量的同時,可以大大減少人工操作出錯的幾率。(2)統(tǒng)一指標(biāo)和日志監(jiān)控分布式數(shù)據(jù)庫集群動輒有幾十甚至上百臺節(jié)點,各種日志信息繁多,需要集中管理和監(jiān)控功能對各種運行指標(biāo)和日志信息進(jìn)行采集、監(jiān)控和預(yù)警,根據(jù)日志快速定位問題,統(tǒng)一展示分布式數(shù)據(jù)庫各節(jié)點工作狀態(tài)。(3)運維管理工作臺分布式數(shù)據(jù)庫集群動輒有幾十甚至上百臺節(jié)點,日常運維操作需要同時在所有節(jié)點執(zhí)行,需要統(tǒng)一模塊進(jìn)行配置、規(guī)劃和執(zhí)行,如集中備份的執(zhí)行、在線重分布的啟停、日志歸檔、DDL語句的修改等。(4)滾動升級和灰度發(fā)布的支持分布式數(shù)據(jù)庫集群動輒有幾十甚至上百臺節(jié)點,一次性全部升級難度增大,且降低業(yè)務(wù)連續(xù)性,需要滾動升級的支持,確保不同版本之間的兼容性;分布式數(shù)據(jù)庫也需要支持灰度發(fā)布功能,抽取部分客戶在部分節(jié)點使用新投產(chǎn)功能,根據(jù)實際效果逐步擴(kuò)大范圍,最終在風(fēng)險可控的情況下

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論