版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ù)語(yǔ)和定義 4縮略語(yǔ) 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)容可能涉及專(zhuān)利。本文件的發(fā)布機(jī)構(gòu)不承擔(dān)識(shí)別專(zhuān)利的責(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近年來(lái)隨著科技與金融加速融合,金融業(yè)務(wù)模式逐步朝著線上化和多樣化的方向發(fā)展,分布式架構(gòu)具備高效彈性、開(kāi)放靈活等特性,可有效適應(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)是未來(lái)金融行業(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)等共性問(wèn)題,隨著金融行業(yè)數(shù)字化轉(zhuǎn)型的深入,這些問(wè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ǔ)》。目的在于給出本文件系列中所使用的專(zhuān)業(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)系。——《金融分布式系統(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ù)庫(kù)、分布式緩存以及批量調(diào)度等領(lǐng)域的通用要求和安全擴(kuò)展要求?!督鹑诜植际较到y(tǒng)應(yīng)用開(kāi)發(fā)測(cè)試原則》。目的在于給出分布式架構(gòu)下金融應(yīng)用開(kāi)發(fā)與測(cè)試相關(guān)要求,闡明分布式應(yīng)用軟件開(kāi)發(fā)規(guī)范、工具方法與測(cè)試要求、內(nèi)容、方法、過(guò)程、環(huán)境、文檔、工具以及管理的通用要求,保障金融分布式應(yīng)用的研發(fā)質(zhì)量,更好滿(mǎn)足用戶(hù)需求?!督鹑诜植际较到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ò)文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。JR/T0167—2020云計(jì)算技術(shù)金融應(yīng)用規(guī)范安全技術(shù)要求JR/T0203—2020分布式數(shù)據(jù)庫(kù)技術(shù)金融應(yīng)用規(guī)范技術(shù)架構(gòu)JR/T0223—2021金融數(shù)據(jù)安全數(shù)據(jù)生命周期安全規(guī)范T/BFIA037-2024金融分布式系統(tǒng)術(shù)語(yǔ)3術(shù)語(yǔ)和定義T/BFIA037-2024中界定的術(shù)語(yǔ)和定義適用于本文件。4縮略語(yǔ)下列符號(hào)和縮略語(yǔ)適用于本文件。SQL:結(jié)構(gòu)化查詢(xún)語(yǔ)言(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ì)中,通過(guò)單元化設(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ì)外圍用戶(hù)透明。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)宜滿(mǎn)足單元的全功能,一筆交易、一個(gè)作業(yè)涉及到的所有處理都在本單元內(nèi)完成;b)應(yīng)滿(mǎn)足單元的隔離性,任一單元不能直接操作其他單元的數(shù)據(jù),若有需要應(yīng)以服務(wù)調(diào)用的方式進(jìn)行,可以是同步的,也可以是異步的,同步調(diào)用需要關(guān)注異地響應(yīng)延時(shí);c)應(yīng)滿(mǎn)足故障的隔離性,一個(gè)單元內(nèi)的故障不會(huì)傳播到其他單元;d)應(yīng)滿(mǎn)足容災(zāi)性,每個(gè)單元在同城或異地有災(zāi)備單元以保證在故障期間進(jìn)行單元處理接管;e)應(yīng)滿(mǎn)足分層設(shè)計(jì)的,分層模塊間的調(diào)用只會(huì)選擇同一單元內(nèi)的節(jié)點(diǎn)。單元內(nèi)的模塊設(shè)計(jì)需要能夠完成本單元的所有業(yè)務(wù)和技術(shù)處理;f)宜滿(mǎn)足交易流量在單元內(nèi)收斂,避免應(yīng)用與單元數(shù)據(jù)分片跨機(jī)房調(diào)用。5.3單元化平臺(tái)設(shè)計(jì)單元化應(yīng)有一套技術(shù)平臺(tái)來(lái)支撐應(yīng)用單元化的設(shè)計(jì),技術(shù)平臺(tái)封裝一系列的技術(shù)能力作為支撐。技術(shù)平臺(tái)能力包含以下內(nèi)容:a)宜具備一套支持單元化的技術(shù)中間件,來(lái)屏蔽單元化對(duì)業(yè)務(wù)的影響,如:數(shù)據(jù)訪問(wèn)中間件、消息中間件等;b)應(yīng)具備一套基于單元化數(shù)據(jù)拆分維度配置管理平臺(tái),比如單元可以訪問(wèn)哪個(gè)分庫(kù)等;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ù)上滿(mǎn)足單元化設(shè)計(jì)。數(shù)據(jù)的單元化是單元化應(yīng)用的基礎(chǔ),數(shù)據(jù)的單元化劃分可以使系統(tǒng)更好的具備擴(kuò)展能力、高可用以及容災(zāi)能力。數(shù)據(jù)單元化遵循以下原則:a)數(shù)據(jù)宜具備可按照某個(gè)維度來(lái)劃分的能力;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)一的全局分庫(kù)鍵,并盡力減少分布式事務(wù);d)應(yīng)充分考慮單元數(shù)量,數(shù)據(jù)拆分時(shí),應(yīng)考慮業(yè)務(wù)的發(fā)展,盡量避免因?yàn)椴鸱謹(jǐn)?shù)量不夠,導(dǎo)致業(yè)務(wù)發(fā)展過(guò)程中多次進(jìn)行水平拆分;e)應(yīng)具備進(jìn)一步分拆能力,可以根據(jù)未來(lái)可見(jiàn)的數(shù)據(jù)量大小做拆分,便于將來(lái)繼續(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ú)感知,且便于單元化服務(wù)訪問(wèn),應(yīng)有一個(gè)支持全局單元的調(diào)度路由系統(tǒng)。路由系統(tǒng)控制著流量分配、跨單元訪問(wèn)等,是實(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ù)載均衡能力,算法包括但不限于輪詢(xún)法、隨機(jī)法、最小連接數(shù)法等。5.6單元化伸縮設(shè)計(jì)伸縮性是指通過(guò)不斷向集群中加入服務(wù)器的手段來(lái)緩解不斷上升的用戶(hù)并發(fā)訪問(wèn)壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。在應(yīng)用單元化設(shè)計(jì)中,單元化伸縮宜滿(mǎn)足以下原則:a)通過(guò)停止故障單元的方式隔離故障,降低故障的影響范圍;b)通過(guò)監(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ì),宜滿(mǎn)足以下設(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ù)器壓力過(guò)大時(shí)保護(hù)核心業(yè)務(wù)的服務(wù)降級(jí)、通過(guò)限制流量進(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ù)模型來(lái)定義系統(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ì)無(wú)狀態(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ù)庫(kù)單元,若有可能在不同單元,只能拆分為微服務(wù)進(jìn)行協(xié)同處理;4T/BFIA039—2024b)遵循繼承性原則:業(yè)務(wù)功能經(jīng)過(guò)長(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訪問(wèn)A單元->步驟2訪問(wèn)B單元->步驟3訪問(wèn)A單元->步驟4訪問(wèn)C單元。如果四個(gè)步驟之間無(wú)依賴(lài)關(guān)系,則可拆分微服務(wù)1(步驟1->步驟3)、微服務(wù)2(步驟2)、微服務(wù)3(步驟4);f)遵循性能約束原則:一個(gè)服務(wù)的顆粒度過(guò)大,處理步驟過(guò)多,訪問(wèn)數(shù)據(jù)過(guò)多,占用系統(tǒng)資源過(guò)多,響應(yīng)時(shí)間過(guò)長(zhǎng),需要結(jié)合交易的業(yè)務(wù)功能的內(nèi)聚性,拆分為多個(gè)微服務(wù),保證系統(tǒng)整體資源并發(fā)處理效率;g)遵循持續(xù)演進(jìn)原則:微服務(wù)應(yīng)隨著應(yīng)用系統(tǒng)開(kāi)發(fā)、測(cè)試和運(yùn)維過(guò)程的持續(xù)開(kāi)展逐步完善,持續(xù)演進(jìn)。6.4服務(wù)編排組合設(shè)計(jì)針對(duì)拆分之后的服務(wù),應(yīng)用中會(huì)存在一些面向其他服務(wù)調(diào)用的操作,需通過(guò)多個(gè)服務(wù)之間協(xié)作來(lái)完成的業(yè)務(wù)能力。這就需要對(duì)多個(gè)服務(wù)進(jìn)行編排組合,服務(wù)編排組合設(shè)計(jì)遵循以下原則:a)應(yīng)對(duì)邏輯比較復(fù)雜,跨集群協(xié)作的服務(wù),需要通過(guò)服務(wù)編排組合的方式,將微服務(wù)串聯(lián);b)對(duì)于需要根據(jù)外呼調(diào)用返回結(jié)果來(lái)決定后續(xù)的編排路徑的場(chǎng)景,宜采用面向可執(zhí)行流程的編排策略。即通過(guò)一個(gè)可執(zhí)行的流程來(lái)協(xié)同內(nèi)部及外部的服務(wù)交互,通過(guò)流程來(lái)控制總體的目標(biāo)、涉及的操作、服務(wù)調(diào)用順序;c)對(duì)于實(shí)時(shí)性要求不高的,宜采用面向協(xié)作的編排策略。即通過(guò)消息的交互序列來(lái)控制各個(gè)部分資源的交互,參與交互的資源都是對(duì)等的,沒(méi)有集中的控制;d)宜提供一種編排框架,包含賦值、調(diào)用的活動(dòng)模型和分支、循環(huán)、異常捕獲等控制模型;e)宜采用統(tǒng)一的全局流水號(hào)和每個(gè)服務(wù)不同的子交易序號(hào)。6.5查詢(xún)服務(wù)設(shè)計(jì)查詢(xún)服務(wù)設(shè)計(jì)遵循以下策略:a)對(duì)于時(shí)效性不高的高頻查詢(xún)服務(wù),可讀取備庫(kù)以減少數(shù)據(jù)庫(kù)主庫(kù)的壓力;b)純查詢(xún)服務(wù)可設(shè)計(jì)以只讀用戶(hù)連接數(shù)據(jù)庫(kù),降低問(wèn)題代碼風(fēng)險(xiǎn);c)可采用API組合模式,通過(guò)查詢(xún)數(shù)據(jù)提供方的服務(wù)來(lái)實(shí)現(xiàn)查詢(xún)操作。該模式可以簡(jiǎn)單直觀的實(shí)現(xiàn)查詢(xún)操作,但也會(huì)增加一些額外的開(kāi)銷(xiāo)并帶來(lái)可用性降低的風(fēng)險(xiǎn);d)可用命令查詢(xún)職責(zé)隔離模式,使用時(shí)間來(lái)維護(hù)從多個(gè)服務(wù)復(fù)制數(shù)據(jù)的只讀視圖,借此實(shí)現(xiàn)對(duì)來(lái)自多個(gè)服務(wù)的數(shù)據(jù)查詢(xún)。6.6緩存使用設(shè)計(jì)在應(yīng)用設(shè)計(jì)中,針對(duì)頻繁使用且極少更改的數(shù)據(jù),可以考慮使用緩存,減少與數(shù)據(jù)庫(kù)的交互,降低交易的響應(yīng)時(shí)間,提高系統(tǒng)的性能。緩存可分為多級(jí)。如交易級(jí)緩存、應(yīng)用服務(wù)器緩存、分布式緩存等。5T/BFIA039—2024多級(jí)緩存中通過(guò)緩存一致性協(xié)議、監(jiān)聽(tīng)機(jī)制、狀態(tài)轉(zhuǎn)換以及數(shù)據(jù)同步等手段,可以確保處理器能看到共享內(nèi)存中的最新數(shù)據(jù),保證緩存一致性。應(yīng)用使用緩存時(shí),應(yīng)遵循以下原則:a)需要考慮數(shù)據(jù)的特點(diǎn),緩存適合用戶(hù)讀多寫(xiě)少的數(shù)據(jù),比如利率、費(fèi)率等參數(shù)類(lèi)數(shù)據(jù);b)考慮數(shù)據(jù)使用的業(yè)務(wù)時(shí)效性,緩存適合對(duì)業(yè)務(wù)時(shí)效性要求低的數(shù)據(jù),不同的時(shí)效性要求決定了緩存的更新策略和過(guò)期時(shí)間,對(duì)時(shí)效性要求越低的業(yè)務(wù)越適合使用緩存;c)考慮對(duì)象粒度,粒度不可過(guò)大,通常而言緩存對(duì)象的粒度越小越適合放在緩存中;d)考慮合適的淘汰策略,盡量避免同一時(shí)間大規(guī)模過(guò)期數(shù)據(jù)引發(fā)緩存擊穿或緩存雪崩;e)做好容量規(guī)劃以及容災(zāi)策略,避免緩存實(shí)例故障后造成大規(guī)模緩存失效;f)交易級(jí)緩存的生命周期僅為一個(gè)交易內(nèi)??捎糜谠谝粋€(gè)交易內(nèi)頻繁訪問(wèn)的數(shù)據(jù),且該數(shù)據(jù)可以較為頻繁的更新。需要關(guān)注的數(shù)據(jù)在交易內(nèi)更新時(shí),需要清空緩存;g)應(yīng)用服務(wù)器緩存存在于本地內(nèi)存中。其與分布式緩存相比,減少了網(wǎng)絡(luò)I/O的開(kāi)銷(xiā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ú)延遲處理,這類(lèi)步驟就可以通過(guò)消息實(shí)現(xiàn)。應(yīng)用使用消息時(shí),應(yīng)遵循以下原則:a)分析原本的業(yè)務(wù)邏輯,將其中對(duì)實(shí)時(shí)性要求不高的部分拆分出來(lái),通過(guò)異步消息進(jìn)行處理例如短信發(fā)送、客戶(hù)合約快照同步、代理人信息登記等;b)具備冪等性,能夠處理重復(fù)的消息;c)消息處理交易,具備反向處理能力,能夠處理沖正交易的異步消息;d)應(yīng)用使用的異步消息框架考慮消息的時(shí)序性和并發(fā)處理。6.8數(shù)據(jù)庫(kù)訪問(wèn)設(shè)計(jì)分布式架構(gòu)下,分布式數(shù)據(jù)庫(kù)應(yīng)提供關(guān)系型和非關(guān)系型數(shù)據(jù)存儲(chǔ)能力,具備JR/T0203—2020,7中的相關(guān)能力。為簡(jiǎn)化應(yīng)用對(duì)分布式數(shù)據(jù)庫(kù)操作的開(kāi)發(fā),一般需提供數(shù)據(jù)庫(kù)操作語(yǔ)句的封裝。在數(shù)據(jù)持久化時(shí),遵循以下規(guī)范:a)宜對(duì)數(shù)據(jù)庫(kù)訪問(wèn)進(jìn)行標(biāo)準(zhǔn)封裝,支持對(duì)指定數(shù)據(jù)庫(kù)表進(jìn)行基本操作,并提供異常處理功能;b)僅使用標(biāo)準(zhǔn)SQL進(jìn)行數(shù)據(jù)庫(kù)表操作,避免使用某種數(shù)據(jù)庫(kù)特色的SQL語(yǔ)句;c)宜對(duì)增刪改查等基本數(shù)據(jù)庫(kù)操作進(jìn)行封裝。封裝時(shí)應(yīng)避免數(shù)據(jù)庫(kù)產(chǎn)品特性,以支持?jǐn)?shù)據(jù)庫(kù)產(chǎn)品變更對(duì)應(yīng)用代碼透明;d)宜對(duì)一些使用簡(jiǎn)單數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)的場(chǎng)景,例如關(guān)聯(lián)查找、范圍查找、聚合函數(shù)等,只能通過(guò)非標(biāo)準(zhǔn)的語(yǔ)句實(shí)現(xiàn)。對(duì)這些內(nèi)容,應(yīng)規(guī)定開(kāi)發(fā)規(guī)范,限定使用場(chǎng)景;e)宜對(duì)于數(shù)據(jù)庫(kù)事務(wù)提交,在平臺(tái)層面進(jìn)行統(tǒng)一處理,對(duì)于數(shù)據(jù)庫(kù)事務(wù)操作也宜提供標(biāo)準(zhǔn)的封裝。6.9應(yīng)用服務(wù)安全設(shè)計(jì)分布式應(yīng)用服務(wù)安全策略包括身份認(rèn)證、訪問(wèn)控制、敏感信息保護(hù)、數(shù)據(jù)完整性與一致性等,具體如下:a)用戶(hù)訪問(wèn)信息系統(tǒng)資源前,應(yīng)對(duì)用戶(hù)身份進(jìn)行鑒別,鑒別信息應(yīng)由用戶(hù)交互提交,前端禁止以任何形式保存用戶(hù)鑒別信息。對(duì)于行內(nèi)各個(gè)系統(tǒng)、組件間的認(rèn)證,應(yīng)由加密組件完成;b)各平臺(tái)組件間應(yīng)實(shí)現(xiàn)面向組件的訪問(wèn)控制,防止組件被非授權(quán)訪問(wèn);c)系統(tǒng)應(yīng)有完整的數(shù)據(jù)產(chǎn)生、存儲(chǔ)、歸檔管理機(jī)制,運(yùn)行生成的交易報(bào)文敏感信息不在非數(shù)據(jù)庫(kù)以外的設(shè)備落地。數(shù)據(jù)庫(kù)存儲(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ù)在傳輸過(guò)程中不被篡改,分布式系統(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ì)客戶(hù)的影響;b)容錯(cuò)架構(gòu)設(shè)計(jì):通過(guò)冗余設(shè)計(jì)避免單點(diǎn)故障,將應(yīng)用部署到多個(gè)AZ,采用兩地三中心或三地三中心;網(wǎng)絡(luò)設(shè)備冗余,服務(wù)器配置雙電源、雙網(wǎng)卡等;c)數(shù)據(jù)庫(kù)高可用:傳統(tǒng)數(shù)據(jù)庫(kù)采用高可用存儲(chǔ)、數(shù)據(jù)庫(kù)復(fù)制,分布式數(shù)據(jù)庫(kù)采用多份數(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ì)交易一致性是指在交易過(guò)程中,每個(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ù)來(lái)保證一致性,應(yīng)通過(guò)兩階段提交來(lái)保證事務(wù)中所有參與方同時(shí)完成提交或者同時(shí)回滾。要求在多個(gè)服務(wù)、數(shù)據(jù)庫(kù)和消息代理之間維持?jǐn)?shù)據(jù)一致性的參與方都滿(mǎn)足XA標(biāo)準(zhǔn);b)采用Saga模式:采用Saga模式維護(hù)交易一致性,應(yīng)通過(guò)異步調(diào)用的方式來(lái)協(xié)調(diào)一系列的本地事務(wù),在檢測(cè)到事務(wù)失敗時(shí),利用補(bǔ)償事務(wù)回滾來(lái)達(dá)到數(shù)據(jù)一致性;c)采用TCC模式:采用TCC的模式來(lái)維護(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ù)類(lèi)應(yīng)用系統(tǒng)中,賬務(wù)步驟應(yīng)滿(mǎn)足賬務(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ù)中記錄跨分片往來(lái)??绶制鶃?lái)也應(yīng)滿(mǎn)足平賬要求,即各微服務(wù)記載的跨分片往來(lái)借方及貸方匯總應(yīng)該相等。同時(shí),在微服務(wù)內(nèi)部,跨分片往來(lái)與其他會(huì)計(jì)分錄之間也應(yīng)遵循借貸一致原則。在系統(tǒng)間,如果存在賬務(wù)關(guān)系,則應(yīng)在每個(gè)系統(tǒng)內(nèi)部記錄跨系統(tǒng)往來(lái);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)將分戶(hù)賬余額文件發(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)宜通過(guò)全局唯一跟蹤號(hào)的方式,在服務(wù)中增加全局唯一跟蹤號(hào),利用數(shù)據(jù)庫(kù)的唯一索引約束來(lái)保證服務(wù)的冪等性;b)可采用有限狀態(tài)機(jī)的方式,通過(guò)狀態(tài)機(jī)的狀態(tài)變更流程來(lá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ì)賬周期問(wèn)題;——系統(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),以此來(lái)驗(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030物聯(lián)網(wǎng)行業(yè)市場(chǎng)供需趨勢(shì)分析及投資風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030物聯(lián)網(wǎng)智能廢物處理行業(yè)市場(chǎng)現(xiàn)狀技術(shù)應(yīng)用創(chuàng)新需求評(píng)估發(fā)展研究
- 2025-2030物聯(lián)網(wǎng)技術(shù)行業(yè)市場(chǎng)拓展消費(fèi)分析與傳統(tǒng)領(lǐng)域投資機(jī)會(huì)規(guī)劃分析研究報(bào)告
- 2025-2030物聯(lián)網(wǎng)信息增值服務(wù)行業(yè)市場(chǎng)發(fā)展環(huán)境與政策支持表格
- 2025-2030牛肉生產(chǎn)行業(yè)市場(chǎng)供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 黏液力學(xué)信號(hào)轉(zhuǎn)導(dǎo)-洞察及研究
- 船舶航行安全監(jiān)控-洞察及研究
- 礦山災(zāi)害應(yīng)急救援中的生態(tài)修復(fù)技術(shù)-洞察及研究
- 聚類(lèi)融合異常識(shí)別-洞察及研究
- 量子點(diǎn)表面鈍化技術(shù)進(jìn)展-洞察及研究
- 吉林省梅河口市五中2025-2026學(xué)年高二上學(xué)期期末語(yǔ)文試卷及答案
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試模擬測(cè)試卷新版
- 2026遼寧機(jī)場(chǎng)管理集團(tuán)校招面筆試題及答案
- 2026年共青團(tuán)中央所屬單位高校畢業(yè)生公開(kāi)招聘66人備考題庫(kù)及參考答案詳解
- 2025徽銀金融租賃有限公司社會(huì)招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年遼寧軌道交通職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考題庫(kù)帶答案解析
- 2026年6級(jí)英語(yǔ)模擬真題及答案
- 2025內(nèi)蒙古鄂爾多斯市委政法委所屬事業(yè)單位引進(jìn)高層次人才3人考試題庫(kù)含答案解析(奪冠)
- 2025年全國(guó)單獨(dú)招生考試綜合試卷(附答案) 完整版2025
- 2025-2026學(xué)年外研版八年級(jí)上冊(cè)英語(yǔ)期末模擬考試題(含答案)
- 高密度聚乙烯(HDPE)排水管(八角雙密封)
評(píng)論
0/150
提交評(píng)論