T-BFIA 039-2024 金融分布式系統(tǒng) 應(yīng)用設(shè)計(jì)原則_第1頁
T-BFIA 039-2024 金融分布式系統(tǒng) 應(yīng)用設(shè)計(jì)原則_第2頁
T-BFIA 039-2024 金融分布式系統(tǒng) 應(yīng)用設(shè)計(jì)原則_第3頁
T-BFIA 039-2024 金融分布式系統(tǒng) 應(yīng)用設(shè)計(jì)原則_第4頁
T-BFIA 039-2024 金融分布式系統(tǒng) 應(yīng)用設(shè)計(jì)原則_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ICS35.240.40CCSA11Financialdistributedsystem--Applicationdesignpr北京金融科技產(chǎn)業(yè)聯(lián)盟發(fā)布IT/BFIA039—2024前言 2規(guī)范性引用文件 3術(shù)語和定義 4縮略語 5應(yīng)用單元化設(shè)計(jì) 6應(yīng)用服務(wù)設(shè)計(jì) 7一致性設(shè)計(jì) 8雙機(jī)并行驗(yàn)證設(shè)計(jì) 9漸進(jìn)切換設(shè)計(jì) T/BFIA039—2024本文件按照GB/T1.1—2020《標(biāo)準(zhǔn)化工作導(dǎo)則第1部分:標(biāo)準(zhǔn)化文件的結(jié)構(gòu)和起草規(guī)則》的規(guī)定起請(qǐng)注意本文件的某些內(nèi)容可能涉及專利。本文件的發(fā)布機(jī)構(gòu)不承擔(dān)識(shí)別專利的責(zé)任。本文件由北京金融科技產(chǎn)業(yè)聯(lián)盟歸口。本文件起草單位:中國(guó)金融電子化集團(tuán)有限公司、北京金安信息技術(shù)有限責(zé)任公司、中國(guó)建設(shè)銀行股份有限公司、建信金融科技有限責(zé)任公司、中國(guó)工商銀行股份有限公司、中國(guó)農(nóng)業(yè)銀行股份有限公司、中國(guó)銀行股份有限公司、中銀金融科技有限公司、招商銀行股份有限公司、平安銀行股份有限公司、華為技術(shù)有限公司、螞蟻科技集團(tuán)股份有限公司、騰訊云計(jì)算(北京)有限責(zé)任公司、中電金信數(shù)字科技集團(tuán)有限公司、安超云軟件有限公司、新華三技術(shù)有限公司。本文件主要起草人:姜云兵、班廷倫、馬國(guó)照、韓竺吾、李晨曉、金磐石、唐成山、丁陳飛、楊晗琦、張以哲、張正園、楊永、隋寧寧、王炳輝、夏龍飛、施經(jīng)緯、劉瓊、王磊、楊東、肖飛軍、劉艷明、張美慶、金艷、楊進(jìn)、潘振禹、胡曉磊、郭智慧、蔣增增、李克鵬、駱君柱、劉磊、隋成龍、許剛、李培、高云超。T/BFIA039—2024近年來隨著科技與金融加速融合,金融業(yè)務(wù)模式逐步朝著線上化和多樣化的方向發(fā)展,分布式架構(gòu)具備高效彈性、開放靈活等特性,可有效適應(yīng)業(yè)務(wù)的快速調(diào)整和市場(chǎng)的快速變化,為金融信息系統(tǒng)的發(fā)展筑牢基石。金融業(yè)IT系統(tǒng)分布式架構(gòu)轉(zhuǎn)型提升了應(yīng)用系統(tǒng)海量交易高并發(fā)和海量數(shù)據(jù)處理的整體性能,保證了金融應(yīng)用系統(tǒng)的可用性,分布式架構(gòu)是未來金融行業(yè)IT系統(tǒng)架構(gòu)的重要架構(gòu)形式。當(dāng)前,仍存在較多的金融IT系統(tǒng)運(yùn)行于集中式架構(gòu)之上,IT系統(tǒng)整體進(jìn)行分布式架構(gòu)轉(zhuǎn)型還面臨著業(yè)務(wù)連續(xù)性要求高、海量遺留系統(tǒng)改造難、海量應(yīng)用管理難、缺少行業(yè)級(jí)架構(gòu)設(shè)計(jì)標(biāo)準(zhǔn)指導(dǎo)以及潛在技術(shù)安全風(fēng)險(xiǎn)等共性問題,隨著金融行業(yè)數(shù)字化轉(zhuǎn)型的深入,這些問題將影響金融機(jī)構(gòu)數(shù)字化轉(zhuǎn)型質(zhì)量與進(jìn)程。為幫助和引導(dǎo)金融機(jī)構(gòu)快速構(gòu)建自身的分布式架構(gòu)支撐體系,推動(dòng)金融行業(yè)應(yīng)用系統(tǒng)的整體分布式架構(gòu)轉(zhuǎn)型,提升各金融機(jī)構(gòu)分布式架構(gòu)轉(zhuǎn)型的質(zhì)量和效率,降低實(shí)施成本,特編制金融分布式系統(tǒng)系列標(biāo)準(zhǔn)。本文件是金融分布式系統(tǒng)系列標(biāo)準(zhǔn)之一,金融分布式系統(tǒng)系列標(biāo)準(zhǔn)包括:——《金融分布式系統(tǒng)術(shù)語》。目的在于給出本文件系列中所使用的專業(yè)名詞,是其余各部分閱讀和應(yīng)用的基礎(chǔ)?!督鹑诜植际较到y(tǒng)IT治理指引》。目的在于給出金融機(jī)構(gòu)分布式架構(gòu)轉(zhuǎn)型后IT治理能力建設(shè)原則、流程管理、技術(shù)要求、技術(shù)支撐體系等方面的要求,以指導(dǎo)金融業(yè)分布式架構(gòu)轉(zhuǎn)型的IT治理能力建設(shè),形成貫穿研發(fā)、運(yùn)維、管理各領(lǐng)域的立體式的深度治理體系?!督鹑诜植际较到y(tǒng)參考架構(gòu)》。目的在于給出金融機(jī)構(gòu)IT系統(tǒng)分布式架構(gòu)設(shè)計(jì)參考,確立金融業(yè)IT系統(tǒng)分布式架構(gòu)的核心模塊、組件以及整體結(jié)構(gòu),闡明分布式系統(tǒng)架構(gòu)下各模塊和組件的主要功能以及相互間關(guān)系?!督鹑诜植际较到y(tǒng)應(yīng)用設(shè)計(jì)原則》。目的在于給出金融應(yīng)用微服務(wù)改造設(shè)計(jì)的總體要求,闡明微服務(wù)設(shè)計(jì)、單元化設(shè)計(jì)、一致性方案設(shè)計(jì)、并行驗(yàn)證設(shè)計(jì)以及正確性驗(yàn)證等通用要求?!督鹑诜植际较到y(tǒng)技術(shù)平臺(tái)能力要求》。目的在于給出金融應(yīng)用運(yùn)行時(shí)所需關(guān)鍵技術(shù)平臺(tái)能力的總體要求,闡明軟負(fù)載、微服務(wù)、分布式事務(wù)、分布式消息、分布式數(shù)據(jù)庫、分布式緩存以及批量調(diào)度等領(lǐng)域的通用要求和安全擴(kuò)展要求?!督鹑诜植际较到y(tǒng)應(yīng)用開發(fā)測(cè)試原則》。目的在于給出分布式架構(gòu)下金融應(yīng)用開發(fā)與測(cè)試相關(guān)要求,闡明分布式應(yīng)用軟件開發(fā)規(guī)范、工具方法與測(cè)試要求、內(nèi)容、方法、過程、環(huán)境、文檔、工具以及管理的通用要求,保障金融分布式應(yīng)用的研發(fā)質(zhì)量,更好滿足用戶需求?!督鹑诜植际较到y(tǒng)運(yùn)維能力要求》。目的在于給出金融應(yīng)用運(yùn)維時(shí)所需關(guān)鍵支撐能力的總體要求,闡明金融應(yīng)用部署、監(jiān)控、故障定位與分析、運(yùn)行保護(hù)等領(lǐng)域的通用要求。1T/BFIA039—2024金融分布式系統(tǒng)應(yīng)用設(shè)計(jì)原則本文件給出了金融分布式系統(tǒng)的應(yīng)用單元化設(shè)計(jì)、應(yīng)用服務(wù)設(shè)計(jì)、一致性設(shè)計(jì)和雙機(jī)并行驗(yàn)證設(shè)計(jì)。本文件適用于金融領(lǐng)域分布式系統(tǒng)的應(yīng)用設(shè)計(jì)。2規(guī)范性引用文件下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。JR/T0167—2020云計(jì)算技術(shù)金融應(yīng)用規(guī)范安全技術(shù)要求JR/T0203—2020分布式數(shù)據(jù)庫技術(shù)金融應(yīng)用規(guī)范技術(shù)架構(gòu)JR/T0223—2021金融數(shù)據(jù)安全數(shù)據(jù)生命周期安全規(guī)范T/BFIA037-2024金融分布式系統(tǒng)術(shù)語3術(shù)語和定義T/BFIA037-2024中界定的術(shù)語和定義適用于本文件。4縮略語下列符號(hào)和縮略語適用于本文件。SQL:結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)API:應(yīng)用程序編程接口(ApplicationProgrammingInterface)I/O:輸入/輸出(Input/Output)AZ:可用分區(qū)(AvailableZone)XA:擴(kuò)展架構(gòu)(eXtendedArchitecture)SAGA:長(zhǎng)事務(wù)模式TCC:嘗試-確認(rèn)-取消(Try-Confirm-Cancel)5應(yīng)用單元化設(shè)計(jì)5.1概述在金融分布式系統(tǒng)設(shè)計(jì)中,通過單元化設(shè)計(jì)將一個(gè)大規(guī)模的系統(tǒng)分拆成許多相對(duì)獨(dú)立的小規(guī)模的系統(tǒng),每個(gè)單元系統(tǒng)可以靈活的部署,應(yīng)用系統(tǒng)可獲取適當(dāng)?shù)臄U(kuò)展能力。系統(tǒng)的伸縮模式可變成單元的2T/BFIA039—2024增減,單元內(nèi)部的規(guī)模和復(fù)雜性不變。單元之間的故障隔離,可降低軟硬件故障的影響范圍。應(yīng)用單元化設(shè)計(jì),應(yīng)對(duì)外圍用戶透明。5.2單元化總體設(shè)計(jì)應(yīng)用系統(tǒng)在單元化架構(gòu)下的總體設(shè)計(jì),應(yīng)該做到每一個(gè)部署單元都是全量數(shù)據(jù)的一個(gè)子集,且單元內(nèi)包含可以實(shí)現(xiàn)本系統(tǒng)服務(wù)的全部功能。應(yīng)用單元化架構(gòu)設(shè)計(jì)遵循以下設(shè)計(jì)原則:a)宜滿足單元的全功能,一筆交易、一個(gè)作業(yè)涉及到的所有處理都在本單元內(nèi)完成;b)應(yīng)滿足單元的隔離性,任一單元不能直接操作其他單元的數(shù)據(jù),若有需要應(yīng)以服務(wù)調(diào)用的方式進(jìn)行,可以是同步的,也可以是異步的,同步調(diào)用需要關(guān)注異地響應(yīng)延時(shí);c)應(yīng)滿足故障的隔離性,一個(gè)單元內(nèi)的故障不會(huì)傳播到其他單元;d)應(yīng)滿足容災(zāi)性,每個(gè)單元在同城或異地有災(zāi)備單元以保證在故障期間進(jìn)行單元處理接管;e)應(yīng)滿足分層設(shè)計(jì)的,分層模塊間的調(diào)用只會(huì)選擇同一單元內(nèi)的節(jié)點(diǎn)。單元內(nèi)的模塊設(shè)計(jì)需要能夠完成本單元的所有業(yè)務(wù)和技術(shù)處理;f)宜滿足交易流量在單元內(nèi)收斂,避免應(yīng)用與單元數(shù)據(jù)分片跨機(jī)房調(diào)用。5.3單元化平臺(tái)設(shè)計(jì)單元化應(yīng)有一套技術(shù)平臺(tái)來支撐應(yīng)用單元化的設(shè)計(jì),技術(shù)平臺(tái)封裝一系列的技術(shù)能力作為支撐。技術(shù)平臺(tái)能力包含以下內(nèi)容:a)宜具備一套支持單元化的技術(shù)中間件,來屏蔽單元化對(duì)業(yè)務(wù)的影響,如:數(shù)據(jù)訪問中間件、消息中間件等;b)應(yīng)具備一套基于單元化數(shù)據(jù)拆分維度配置管理平臺(tái),比如單元可以訪問哪個(gè)分庫等;c)應(yīng)具備一套單元化部署的平臺(tái);d)應(yīng)具備一套支持單元化的鏈路跟蹤平臺(tái)。5.4數(shù)據(jù)單元化設(shè)計(jì)在應(yīng)用的單元化設(shè)計(jì)時(shí),應(yīng)在應(yīng)用數(shù)據(jù)上滿足單元化設(shè)計(jì)。數(shù)據(jù)的單元化是單元化應(yīng)用的基礎(chǔ),數(shù)據(jù)的單元化劃分可以使系統(tǒng)更好的具備擴(kuò)展能力、高可用以及容災(zāi)能力。數(shù)據(jù)單元化遵循以下原則:a)數(shù)據(jù)宜具備可按照某個(gè)維度來劃分的能力;b)應(yīng)適合自身交易特性,拆分維度應(yīng)與應(yīng)用特性相適配,可采用垂直與水平相結(jié)合的方式;c)宜采用統(tǒng)一拆分規(guī)則,數(shù)據(jù)拆分時(shí),應(yīng)對(duì)數(shù)據(jù)采用按照統(tǒng)一規(guī)則進(jìn)行拆分,進(jìn)而產(chǎn)生統(tǒng)一的全局分庫鍵,并盡力減少分布式事務(wù);d)應(yīng)充分考慮單元數(shù)量,數(shù)據(jù)拆分時(shí),應(yīng)考慮業(yè)務(wù)的發(fā)展,盡量避免因?yàn)椴鸱謹(jǐn)?shù)量不夠,導(dǎo)致業(yè)務(wù)發(fā)展過程中多次進(jìn)行水平拆分;e)應(yīng)具備進(jìn)一步分拆能力,可以根據(jù)未來可見的數(shù)據(jù)量大小做拆分,便于將來繼續(xù)拆分;f)宜具備數(shù)據(jù)副本同步能力,對(duì)于全局性的數(shù)據(jù),宜做到在可接受的時(shí)間內(nèi)同步到副本的能力;g)應(yīng)具備獨(dú)立的高可用和容災(zāi)能力。5.5單元化路由設(shè)計(jì)在應(yīng)用單元化設(shè)計(jì)中,為了使得外圍無感知,且便于單元化服務(wù)訪問,應(yīng)有一個(gè)支持全局單元的調(diào)度路由系統(tǒng)。路由系統(tǒng)控制著流量分配、跨單元訪問等,是實(shí)現(xiàn)單元化設(shè)計(jì)的一個(gè)重要手段。路由設(shè)計(jì),遵循以下設(shè)計(jì)原則:a)應(yīng)具備分配流量能力,可根據(jù)單元實(shí)際負(fù)載進(jìn)行流量分配;b)應(yīng)具備加載單元化分片的規(guī)則與方法的能力,并根據(jù)規(guī)則實(shí)施控制所有單元的運(yùn)行的能力;3T/BFIA039—2024c)應(yīng)支持多種不同的路由算法,需要根據(jù)應(yīng)用特點(diǎn)支持多種不同的路由算法,算法能力包括但不限于哈希算法、業(yè)務(wù)要素映射、指定尋址等;d)宜具有熔斷能力,算法能力包括但不限于斷路、流量控制、服務(wù)降級(jí)等;e)宜具有負(fù)載均衡能力,算法包括但不限于輪詢法、隨機(jī)法、最小連接數(shù)法等。5.6單元化伸縮設(shè)計(jì)伸縮性是指通過不斷向集群中加入服務(wù)器的手段來緩解不斷上升的用戶并發(fā)訪問壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。在應(yīng)用單元化設(shè)計(jì)中,單元化伸縮宜滿足以下原則:a)通過停止故障單元的方式隔離故障,降低故障的影響范圍;b)通過監(jiān)測(cè)設(shè)定閾值,在進(jìn)入單元的流量增長(zhǎng)/減少時(shí),進(jìn)行單元的動(dòng)態(tài)擴(kuò)縮容。5.7單元化治理設(shè)計(jì)在應(yīng)用單元化設(shè)計(jì)中,隨著業(yè)務(wù)量的增加,系統(tǒng)拆分出的單元數(shù)量會(huì)隨之上升。治理設(shè)計(jì),宜滿足以下設(shè)計(jì)規(guī)則:a)有一個(gè)統(tǒng)一的服務(wù)單元地址管理系統(tǒng),包括服務(wù)單元的發(fā)現(xiàn)和注冊(cè),即注冊(cè)中心;b)有一套機(jī)制管理分配進(jìn)入各單元的流量,包括平均分配流量的軟負(fù)載均衡、瞬時(shí)請(qǐng)求的流量削峰、服務(wù)不可用的服務(wù)熔斷、服務(wù)器壓力過大時(shí)保護(hù)核心業(yè)務(wù)的服務(wù)降級(jí)、通過限制流量進(jìn)出單元而保障系統(tǒng)穩(wěn)定運(yùn)行的服務(wù)限流;c)保證版本升級(jí)后,新數(shù)據(jù)結(jié)構(gòu)能解析舊的數(shù)據(jù);d)具有多活災(zāi)備,保證服務(wù)單元的高可用性。6應(yīng)用服務(wù)設(shè)計(jì)6.1概述服務(wù)是一個(gè)單一的、可以獨(dú)立部署的軟件單位,實(shí)現(xiàn)了一系列的業(yè)務(wù)功能。分布式系統(tǒng)下的應(yīng)用服務(wù)設(shè)計(jì),有別于集中式系統(tǒng)下的應(yīng)用服務(wù)設(shè)計(jì),需要考慮服務(wù)在單元內(nèi)的業(yè)務(wù)邏輯還要考慮跨單元協(xié)同的邏輯。因此,在分布式架構(gòu)下的應(yīng)用服務(wù)設(shè)計(jì),除了關(guān)注業(yè)務(wù)功能之外,還需要確定合理的服務(wù)的分解。6.2服務(wù)總體設(shè)計(jì)分布式系統(tǒng)應(yīng)用服務(wù)設(shè)計(jì)時(shí),從業(yè)務(wù)功能識(shí)別定義到形成單元化的服務(wù),遵循以下總體的設(shè)計(jì)原則:a)宜為服務(wù)系統(tǒng)創(chuàng)建抽象模型,并根據(jù)模型來定義系統(tǒng)的操作;b)可基于業(yè)務(wù)能力進(jìn)行服務(wù)拆分,針對(duì)目標(biāo)的結(jié)構(gòu)流程分析識(shí)別業(yè)務(wù)能力,并為每個(gè)能力定義服c)可基于領(lǐng)域進(jìn)行服務(wù)拆分,分析業(yè)務(wù)并識(shí)別出業(yè)務(wù)對(duì)應(yīng)的不同子域,并為領(lǐng)域定義模型界限上下文,進(jìn)而分解為服務(wù);d)宜設(shè)計(jì)無狀態(tài)的服務(wù)。6.3服務(wù)拆分設(shè)計(jì)在形成業(yè)務(wù)模型之后,需要對(duì)服務(wù)進(jìn)行服務(wù)識(shí)別拆分。在服務(wù)拆分設(shè)計(jì)時(shí),宜遵循以下拆分原則:a)遵循跨單元拆分原則:一個(gè)事務(wù)所涉及的數(shù)據(jù)是否有可能在不同數(shù)據(jù)庫單元,若有可能在不同單元,只能拆分為微服務(wù)進(jìn)行協(xié)同處理;4T/BFIA039—2024b)遵循繼承性原則:業(yè)務(wù)功能經(jīng)過長(zhǎng)期的傳承演進(jìn),原有服務(wù)的設(shè)計(jì)存在既有合理性,針對(duì)原有功能和數(shù)據(jù)分布未發(fā)生改變的,其微服務(wù)的設(shè)計(jì)應(yīng)該盡量保持原有顆粒度,盡量減少對(duì)外圍調(diào)用方的影響;c)遵循企業(yè)架構(gòu)原則:遵循自身企業(yè)的業(yè)務(wù)領(lǐng)域劃分和組件劃分。其中,按業(yè)務(wù)領(lǐng)域劃分是指按業(yè)務(wù)把每個(gè)業(yè)務(wù)都拆分成一個(gè)微服務(wù),如:按照存款、貸款、借記卡的維度拆分。按組件劃分是指公共組件按組件劃分原則拆分成多個(gè)微服務(wù);d)遵守微服務(wù)單一職責(zé)的原則:一個(gè)微服務(wù)中如果包含太多功能、職責(zé),一旦任意一個(gè)模塊修改就會(huì)導(dǎo)致該微服務(wù)重新編譯重新部署,進(jìn)而增加了變動(dòng)成本、降低研發(fā)效率;e)遵循最少調(diào)用原則:分析數(shù)據(jù)處理的步驟,要盡可能歸并在一個(gè)單元處理的步驟,讓服務(wù)組合調(diào)用微服務(wù)調(diào)用次數(shù)最少。4個(gè)步驟:步驟1訪問A單元->步驟2訪問B單元->步驟3訪問A單元->步驟4訪問C單元。如果四個(gè)步驟之間無依賴關(guān)系,則可拆分微服務(wù)1(步驟1->步驟3)、微服務(wù)2(步驟2)、微服務(wù)3(步驟4);f)遵循性能約束原則:一個(gè)服務(wù)的顆粒度過大,處理步驟過多,訪問數(shù)據(jù)過多,占用系統(tǒng)資源過多,響應(yīng)時(shí)間過長(zhǎng),需要結(jié)合交易的業(yè)務(wù)功能的內(nèi)聚性,拆分為多個(gè)微服務(wù),保證系統(tǒng)整體資源并發(fā)處理效率;g)遵循持續(xù)演進(jìn)原則:微服務(wù)應(yīng)隨著應(yīng)用系統(tǒng)開發(fā)、測(cè)試和運(yùn)維過程的持續(xù)開展逐步完善,持續(xù)演進(jìn)。6.4服務(wù)編排組合設(shè)計(jì)針對(duì)拆分之后的服務(wù),應(yīng)用中會(huì)存在一些面向其他服務(wù)調(diào)用的操作,需通過多個(gè)服務(wù)之間協(xié)作來完成的業(yè)務(wù)能力。這就需要對(duì)多個(gè)服務(wù)進(jìn)行編排組合,服務(wù)編排組合設(shè)計(jì)遵循以下原則:a)應(yīng)對(duì)邏輯比較復(fù)雜,跨集群協(xié)作的服務(wù),需要通過服務(wù)編排組合的方式,將微服務(wù)串聯(lián);b)對(duì)于需要根據(jù)外呼調(diào)用返回結(jié)果來決定后續(xù)的編排路徑的場(chǎng)景,宜采用面向可執(zhí)行流程的編排策略。即通過一個(gè)可執(zhí)行的流程來協(xié)同內(nèi)部及外部的服務(wù)交互,通過流程來控制總體的目標(biāo)、涉及的操作、服務(wù)調(diào)用順序;c)對(duì)于實(shí)時(shí)性要求不高的,宜采用面向協(xié)作的編排策略。即通過消息的交互序列來控制各個(gè)部分資源的交互,參與交互的資源都是對(duì)等的,沒有集中的控制;d)宜提供一種編排框架,包含賦值、調(diào)用的活動(dòng)模型和分支、循環(huán)、異常捕獲等控制模型;e)宜采用統(tǒng)一的全局流水號(hào)和每個(gè)服務(wù)不同的子交易序號(hào)。6.5查詢服務(wù)設(shè)計(jì)查詢服務(wù)設(shè)計(jì)遵循以下策略:a)對(duì)于時(shí)效性不高的高頻查詢服務(wù),可讀取備庫以減少數(shù)據(jù)庫主庫的壓力;b)純查詢服務(wù)可設(shè)計(jì)以只讀用戶連接數(shù)據(jù)庫,降低問題代碼風(fēng)險(xiǎn);c)可采用API組合模式,通過查詢數(shù)據(jù)提供方的服務(wù)來實(shí)現(xiàn)查詢操作。該模式可以簡(jiǎn)單直觀的實(shí)現(xiàn)查詢操作,但也會(huì)增加一些額外的開銷并帶來可用性降低的風(fēng)險(xiǎn);d)可用命令查詢職責(zé)隔離模式,使用時(shí)間來維護(hù)從多個(gè)服務(wù)復(fù)制數(shù)據(jù)的只讀視圖,借此實(shí)現(xiàn)對(duì)來自多個(gè)服務(wù)的數(shù)據(jù)查詢。6.6緩存使用設(shè)計(jì)在應(yīng)用設(shè)計(jì)中,針對(duì)頻繁使用且極少更改的數(shù)據(jù),可以考慮使用緩存,減少與數(shù)據(jù)庫的交互,降低交易的響應(yīng)時(shí)間,提高系統(tǒng)的性能。緩存可分為多級(jí)。如交易級(jí)緩存、應(yīng)用服務(wù)器緩存、分布式緩存等。5T/BFIA039—2024多級(jí)緩存中通過緩存一致性協(xié)議、監(jiān)聽機(jī)制、狀態(tài)轉(zhuǎn)換以及數(shù)據(jù)同步等手段,可以確保處理器能看到共享內(nèi)存中的最新數(shù)據(jù),保證緩存一致性。應(yīng)用使用緩存時(shí),應(yīng)遵循以下原則:a)需要考慮數(shù)據(jù)的特點(diǎn),緩存適合用戶讀多寫少的數(shù)據(jù),比如利率、費(fèi)率等參數(shù)類數(shù)據(jù);b)考慮數(shù)據(jù)使用的業(yè)務(wù)時(shí)效性,緩存適合對(duì)業(yè)務(wù)時(shí)效性要求低的數(shù)據(jù),不同的時(shí)效性要求決定了緩存的更新策略和過期時(shí)間,對(duì)時(shí)效性要求越低的業(yè)務(wù)越適合使用緩存;c)考慮對(duì)象粒度,粒度不可過大,通常而言緩存對(duì)象的粒度越小越適合放在緩存中;d)考慮合適的淘汰策略,盡量避免同一時(shí)間大規(guī)模過期數(shù)據(jù)引發(fā)緩存擊穿或緩存雪崩;e)做好容量規(guī)劃以及容災(zāi)策略,避免緩存實(shí)例故障后造成大規(guī)模緩存失效;f)交易級(jí)緩存的生命周期僅為一個(gè)交易內(nèi)。可用于在一個(gè)交易內(nèi)頻繁訪問的數(shù)據(jù),且該數(shù)據(jù)可以較為頻繁的更新。需要關(guān)注的數(shù)據(jù)在交易內(nèi)更新時(shí),需要清空緩存;g)應(yīng)用服務(wù)器緩存存在于本地內(nèi)存中。其與分布式緩存相比,減少了網(wǎng)絡(luò)I/O的開銷,性能更優(yōu)。使用該級(jí)別緩存要注意緩存刷新策略。緩存刷新的方式可根據(jù)緩存數(shù)據(jù)生效的敏感度進(jìn)行設(shè)置,若為敏感參數(shù),采用事件通知方式刷新;若為不敏感數(shù)據(jù),采用定時(shí)刷新。6.7消息使用設(shè)計(jì)聯(lián)機(jī)交易由多個(gè)業(yè)務(wù)步驟組成,某些業(yè)務(wù)步驟與其他步驟關(guān)聯(lián)性不強(qiáng),可以單獨(dú)延遲處理,這類步驟就可以通過消息實(shí)現(xiàn)。應(yīng)用使用消息時(shí),應(yīng)遵循以下原則:a)分析原本的業(yè)務(wù)邏輯,將其中對(duì)實(shí)時(shí)性要求不高的部分拆分出來,通過異步消息進(jìn)行處理例如短信發(fā)送、客戶合約快照同步、代理人信息登記等;b)具備冪等性,能夠處理重復(fù)的消息;c)消息處理交易,具備反向處理能力,能夠處理沖正交易的異步消息;d)應(yīng)用使用的異步消息框架考慮消息的時(shí)序性和并發(fā)處理。6.8數(shù)據(jù)庫訪問設(shè)計(jì)分布式架構(gòu)下,分布式數(shù)據(jù)庫應(yīng)提供關(guān)系型和非關(guān)系型數(shù)據(jù)存儲(chǔ)能力,具備JR/T0203—2020,7中的相關(guān)能力。為簡(jiǎn)化應(yīng)用對(duì)分布式數(shù)據(jù)庫操作的開發(fā),一般需提供數(shù)據(jù)庫操作語句的封裝。在數(shù)據(jù)持久化時(shí),遵循以下規(guī)范:a)宜對(duì)數(shù)據(jù)庫訪問進(jìn)行標(biāo)準(zhǔn)封裝,支持對(duì)指定數(shù)據(jù)庫表進(jìn)行基本操作,并提供異常處理功能;b)僅使用標(biāo)準(zhǔn)SQL進(jìn)行數(shù)據(jù)庫表操作,避免使用某種數(shù)據(jù)庫特色的SQL語句;c)宜對(duì)增刪改查等基本數(shù)據(jù)庫操作進(jìn)行封裝。封裝時(shí)應(yīng)避免數(shù)據(jù)庫產(chǎn)品特性,以支持?jǐn)?shù)據(jù)庫產(chǎn)品變更對(duì)應(yīng)用代碼透明;d)宜對(duì)一些使用簡(jiǎn)單數(shù)據(jù)庫操作實(shí)現(xiàn)的場(chǎng)景,例如關(guān)聯(lián)查找、范圍查找、聚合函數(shù)等,只能通過非標(biāo)準(zhǔn)的語句實(shí)現(xiàn)。對(duì)這些內(nèi)容,應(yīng)規(guī)定開發(fā)規(guī)范,限定使用場(chǎng)景;e)宜對(duì)于數(shù)據(jù)庫事務(wù)提交,在平臺(tái)層面進(jìn)行統(tǒng)一處理,對(duì)于數(shù)據(jù)庫事務(wù)操作也宜提供標(biāo)準(zhǔn)的封裝。6.9應(yīng)用服務(wù)安全設(shè)計(jì)分布式應(yīng)用服務(wù)安全策略包括身份認(rèn)證、訪問控制、敏感信息保護(hù)、數(shù)據(jù)完整性與一致性等,具體如下:a)用戶訪問信息系統(tǒng)資源前,應(yīng)對(duì)用戶身份進(jìn)行鑒別,鑒別信息應(yīng)由用戶交互提交,前端禁止以任何形式保存用戶鑒別信息。對(duì)于行內(nèi)各個(gè)系統(tǒng)、組件間的認(rèn)證,應(yīng)由加密組件完成;b)各平臺(tái)組件間應(yīng)實(shí)現(xiàn)面向組件的訪問控制,防止組件被非授權(quán)訪問;c)系統(tǒng)應(yīng)有完整的數(shù)據(jù)產(chǎn)生、存儲(chǔ)、歸檔管理機(jī)制,運(yùn)行生成的交易報(bào)文敏感信息不在非數(shù)據(jù)庫以外的設(shè)備落地。數(shù)據(jù)庫存儲(chǔ)的敏感數(shù)據(jù)應(yīng)采用加密手段進(jìn)行保護(hù),敏感信息應(yīng)在應(yīng)用系統(tǒng)中6T/BFIA039—2024實(shí)現(xiàn)加密傳輸;d)應(yīng)確保數(shù)據(jù)在傳輸過程中不被篡改,分布式系統(tǒng)所有節(jié)點(diǎn)都能看到相同數(shù)據(jù),應(yīng)符合JR/T0223—2021的7.2節(jié)及JR/T0167—2020的9.2節(jié)相關(guān)內(nèi)容。6.10應(yīng)用服務(wù)高可用設(shè)計(jì)分布式應(yīng)用服務(wù)高可用設(shè)計(jì)遵循以下策略:a)確保業(yè)務(wù)連續(xù)性:縮短計(jì)劃內(nèi)外的停機(jī)時(shí)間,降低對(duì)客戶的影響;b)容錯(cuò)架構(gòu)設(shè)計(jì):通過冗余設(shè)計(jì)避免單點(diǎn)故障,將應(yīng)用部署到多個(gè)AZ,采用兩地三中心或三地三中心;網(wǎng)絡(luò)設(shè)備冗余,服務(wù)器配置雙電源、雙網(wǎng)卡等;c)數(shù)據(jù)庫高可用:傳統(tǒng)數(shù)據(jù)庫采用高可用存儲(chǔ)、數(shù)據(jù)庫復(fù)制,分布式數(shù)據(jù)庫采用多份數(shù)據(jù)副本。d)服務(wù)降級(jí):采用限流和熔斷策略應(yīng)對(duì)流量陡增、關(guān)聯(lián)系統(tǒng)故障等外部因素影響;e)監(jiān)控與應(yīng)急響應(yīng):建立全方位監(jiān)控指標(biāo),及時(shí)發(fā)現(xiàn)系統(tǒng)異常;建立完善的應(yīng)急機(jī)制,保證及時(shí)介入處置。7一致性設(shè)計(jì)7.1交易一致性設(shè)計(jì)交易一致性是指在交易過程中,每個(gè)調(diào)用步驟應(yīng)當(dāng)是全部成功或者全部失敗的狀態(tài),不可以出現(xiàn)一部分成功一部分失敗的情況。為此,應(yīng)用在進(jìn)行交易設(shè)計(jì)時(shí)應(yīng)考慮交易一致性,并根據(jù)實(shí)際業(yè)務(wù)模式選擇以下交易一致性設(shè)計(jì):a)采用XA標(biāo)準(zhǔn)的分布式事務(wù):采用XA標(biāo)準(zhǔn)的分布式事務(wù)來保證一致性,應(yīng)通過兩階段提交來保證事務(wù)中所有參與方同時(shí)完成提交或者同時(shí)回滾。要求在多個(gè)服務(wù)、數(shù)據(jù)庫和消息代理之間維持?jǐn)?shù)據(jù)一致性的參與方都滿足XA標(biāo)準(zhǔn);b)采用Saga模式:采用Saga模式維護(hù)交易一致性,應(yīng)通過異步調(diào)用的方式來協(xié)調(diào)一系列的本地事務(wù),在檢測(cè)到事務(wù)失敗時(shí),利用補(bǔ)償事務(wù)回滾來達(dá)到數(shù)據(jù)一致性;c)采用TCC模式:采用TCC的模式來維護(hù)交易一致性,各業(yè)務(wù)參與方應(yīng)提供業(yè)務(wù)檢查并預(yù)留資源的服務(wù)、一個(gè)不做資源檢查直接執(zhí)行業(yè)務(wù)的服務(wù)和一個(gè)釋放預(yù)留業(yè)務(wù)資源的服務(wù)。7.2賬務(wù)一致性設(shè)計(jì)在一個(gè)賬務(wù)類應(yīng)用系統(tǒng)中,賬務(wù)步驟應(yīng)滿足賬務(wù)是一致的。因此應(yīng)用在設(shè)計(jì)時(shí),應(yīng)包含賬務(wù)一致性的設(shè)計(jì),包括:a)在聯(lián)機(jī)交易執(zhí)行時(shí),一只微服務(wù)生成的會(huì)計(jì)分錄需遵循借貸一致原則,即借貸方向相反,金額相等;b)在系統(tǒng)內(nèi),如果組合交易的微服務(wù)之間存在賬務(wù)關(guān)系,則應(yīng)在微服務(wù)中記錄跨分片往來??绶制鶃硪矐?yīng)滿足平賬要求,即各微服務(wù)記載的跨分片往來借方及貸方匯總應(yīng)該相等。同時(shí),在微服務(wù)內(nèi)部,跨分片往來與其他會(huì)計(jì)分錄之間也應(yīng)遵循借貸一致原則。在系統(tǒng)間,如果存在賬務(wù)關(guān)系,則應(yīng)在每個(gè)系統(tǒng)內(nèi)部記錄跨系統(tǒng)往來;c)對(duì)交易與核算分離的系統(tǒng),為避免交易、核算系統(tǒng)間的消息丟失,應(yīng)在日終進(jìn)行核算一致性比對(duì),即將交易系統(tǒng)記載的賬務(wù)要素同核算系統(tǒng)記錄的賬務(wù)信息進(jìn)行比對(duì)。比對(duì)一般按全局唯一的跟蹤號(hào)進(jìn)行勾連,并檢核其金額、幣別等關(guān)鍵要素是否一致;d)日終時(shí),進(jìn)行總分核對(duì)。即核算系統(tǒng)將當(dāng)日生成的核算信息,按科目、機(jī)構(gòu)等要素匯總文件發(fā)總賬系統(tǒng);同時(shí)交易系統(tǒng)將分戶賬余額文件發(fā)總賬系統(tǒng)。由總賬系統(tǒng)根據(jù)兩套文件進(jìn)行總分核7T/BFIA039—2024對(duì)。7.3服務(wù)的冪等性設(shè)計(jì)服務(wù)的冪等性是指應(yīng)用系統(tǒng)的服務(wù)在重復(fù)調(diào)用的時(shí)候,應(yīng)返回上一次調(diào)用的結(jié)果。在應(yīng)用設(shè)計(jì)中,服務(wù)遵循一定冪等性規(guī)范,包括:a)宜通過全局唯一跟蹤號(hào)的方式,在服務(wù)中增加全局唯一跟蹤號(hào),利用數(shù)據(jù)庫的唯一索引約束來保證服務(wù)的冪等性;b)可采用有限狀態(tài)機(jī)的方式,通過狀態(tài)機(jī)的狀態(tài)變更流程來達(dá)到服務(wù)的冪等性。7.4服務(wù)事后對(duì)賬設(shè)計(jì)對(duì)于涉及賬務(wù)的系統(tǒng),需要在日終設(shè)置對(duì)賬機(jī)制,以檢查是否有交易發(fā)生不一致。根據(jù)對(duì)賬發(fā)生在系統(tǒng)間或系統(tǒng)內(nèi)部,宜分為“系統(tǒng)間對(duì)賬”和“系統(tǒng)內(nèi)對(duì)賬”。a)涉及跨系統(tǒng)的賬務(wù)交易,設(shè)計(jì)系統(tǒng)間對(duì)賬機(jī)制應(yīng)遵循以下原則:——系統(tǒng)間對(duì)賬基于流水記錄;——系統(tǒng)間對(duì)賬考慮對(duì)賬周期問題;——系統(tǒng)間對(duì)賬考慮性能。b)對(duì)于集中式系統(tǒng),內(nèi)部不存在交易組合,因此不涉及系統(tǒng)內(nèi)對(duì)賬。同時(shí),集中式系統(tǒng)中事務(wù)一次提交,因此流水中的交易狀態(tài)是明確的。但在分布式系統(tǒng)中,系統(tǒng)內(nèi)部存在交易組合,可能存在內(nèi)部微服務(wù)不一致的場(chǎng)景,因此需要系統(tǒng)內(nèi)對(duì)賬;同時(shí)流水狀態(tài)可能存在“未知”,在系統(tǒng)間對(duì)賬前應(yīng)先明確組合交易的流水狀態(tài),以避免出現(xiàn)混淆。系統(tǒng)內(nèi)對(duì)賬應(yīng)遵循以下原則:——系統(tǒng)內(nèi)對(duì)賬基于交易流水;——系統(tǒng)內(nèi)對(duì)賬考慮性能;——系統(tǒng)內(nèi)對(duì)賬時(shí),對(duì)賬周期為同一營(yíng)業(yè)日期;——在系統(tǒng)內(nèi)對(duì)賬之后,提供自動(dòng)化的處理機(jī)制;——對(duì)于“狀態(tài)未知”的組合交易,在調(diào)賬之后明確其流水狀態(tài)。8雙機(jī)并行驗(yàn)證設(shè)計(jì)雙機(jī)并行指的是,將生產(chǎn)流量復(fù)制一份發(fā)往目標(biāo)待驗(yàn)證的系統(tǒng),以此來驗(yàn)證新系統(tǒng)在真實(shí)生產(chǎn)流量下運(yùn)行的準(zhǔn)確性和穩(wěn)定性,雙機(jī)是指目標(biāo)驗(yàn)證系統(tǒng)及生產(chǎn)系統(tǒng)。由于交易還是運(yùn)行在生產(chǎn)系統(tǒng),雙機(jī)并

溫馨提示

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

評(píng)論

0/150

提交評(píng)論