基于事件驅(qū)動(dòng)的流量積分平臺(tái)交易系統(tǒng)
發(fā)布時(shí)間:2020-07-22 01:19
【摘要】:互聯(lián)網(wǎng)積分營銷模式的發(fā)展,促使多個(gè)企業(yè)間可互相兌換用戶積分,促進(jìn)積分流通,形成聯(lián)盟效應(yīng),構(gòu)建積分通用通兌的新型營銷模式。這一業(yè)務(wù)模式下,積分交易系統(tǒng)承擔(dān)的壓力日益增加,如何構(gòu)建一個(gè)高可用的交易系統(tǒng)成為本課題研究的關(guān)鍵。此類金融交易的場(chǎng)景,對(duì)數(shù)據(jù)一致性要求較高,傳統(tǒng)基于數(shù)據(jù)庫的流量積分平臺(tái),業(yè)務(wù)模型和數(shù)據(jù)存儲(chǔ)嚴(yán)重耦合,且流量積分的多重特征會(huì)造成事務(wù)操作的性能瓶頸。據(jù)此,本文提出了基于事件驅(qū)動(dòng)的系統(tǒng)架構(gòu)解決上述問題。與傳統(tǒng)事件驅(qū)動(dòng)架構(gòu)不同,本文綜合了事件通知、事件傳遞狀態(tài)轉(zhuǎn)移、事件溯源以及命令查詢職責(zé)分離等模型,以領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)為指導(dǎo)思想,對(duì)流量積分平臺(tái)交易系統(tǒng)進(jìn)行分析建模,力求在保證數(shù)據(jù)一致性的基礎(chǔ)之上,提高系統(tǒng)的吞吐量。同時(shí),考慮到事件溯源概念中聚合根的升降級(jí)容易造成事件丟失,改進(jìn)了事件溯源的具體實(shí)現(xiàn),通過將事件與聚合平等化,避免業(yè)務(wù)需求的變更過多影響底層邏輯。為滿足企業(yè)級(jí)應(yīng)用需求,提高系統(tǒng)魯棒性和可擴(kuò)展性,將交易服務(wù)單元集成到微服務(wù)架構(gòu)上,并結(jié)合數(shù)據(jù)切分,實(shí)現(xiàn)分布式應(yīng)用。本文闡述了根據(jù)流量積分平臺(tái)的實(shí)際業(yè)務(wù)場(chǎng)景進(jìn)行系統(tǒng)建模的方法,給出詳細(xì)的設(shè)計(jì)方案和實(shí)現(xiàn)細(xì)節(jié),并通過功能測(cè)試和性能測(cè)試的結(jié)果驗(yàn)證了基于事件驅(qū)動(dòng)模型的流量積分平臺(tái)交易系統(tǒng)有效性。
【學(xué)位授予單位】:北京郵電大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP311.52
【圖文】:
一,,果傳遞進(jìn)來的參數(shù)滿足業(yè)務(wù)規(guī)則,則可以順利創(chuàng)建,否則應(yīng)該拋出異常,避免創(chuàng)逡逑建一個(gè)錯(cuò)誤對(duì)象。隱藏創(chuàng)建細(xì)節(jié)同樣可以避免業(yè)務(wù)邏輯泄露到應(yīng)用層,應(yīng)用層只逡逑需要簡單地調(diào)用領(lǐng)域?qū)拥墓S創(chuàng)建出期望對(duì)象即可。同時(shí)保證創(chuàng)建過程的原子性逡逑非常重要,否則創(chuàng)建過程中可能對(duì)某個(gè)對(duì)象執(zhí)行了一半的操作,將其置于未定義逡逑的狀態(tài)。創(chuàng)建聚合也是如此,聚合根創(chuàng)建之后,關(guān)聯(lián)的實(shí)體也必須完成實(shí)例化。逡逑領(lǐng)域模型中的對(duì)象可能包含重要的業(yè)務(wù)數(shù)據(jù),僅僅駐留在內(nèi)存中并不安全,逡逑系統(tǒng)宕機(jī)會(huì)造成數(shù)據(jù)丟失,因此需要通過存儲(chǔ)介質(zhì)來延續(xù)對(duì)象的生命周期,當(dāng)需逡逑要它的時(shí)候或者系統(tǒng)重啟時(shí)會(huì)重建這個(gè)對(duì)象。倉儲(chǔ)提供這樣一種機(jī)制,可以像操逡逑作集合接口一樣來管理對(duì)象,實(shí)現(xiàn)內(nèi)存對(duì)象與關(guān)系型數(shù)據(jù)的相互轉(zhuǎn)化。倉儲(chǔ)針對(duì)逡逑實(shí)體或者聚合進(jìn)行原子性封裝,向上隱藏了數(shù)據(jù)轉(zhuǎn)化的細(xì)節(jié),并且轉(zhuǎn)化過程不能逡逑被打斷,保證輸出的實(shí)體或者聚合是完整可用的。為了將領(lǐng)域?qū)优c倉儲(chǔ)層更好地逡逑隔離,通常在領(lǐng)域?qū)佣x倉儲(chǔ)的接口,而在倉儲(chǔ)層進(jìn)行具體的實(shí)現(xiàn)。通過接口封逡逑裝變化使應(yīng)用層協(xié)調(diào)領(lǐng)域?qū)ο笸瓿蓸I(yè)務(wù)邏輯,無需關(guān)心數(shù)據(jù)庫如何獲取數(shù)據(jù)。圖逡逑2-1為領(lǐng)域模型元素構(gòu)成。逡逑
事件溯源模式是在數(shù)據(jù)存儲(chǔ)層面上的創(chuàng)新與改進(jìn),領(lǐng)域事件相對(duì)于其他復(fù)雜逡逑對(duì)象,結(jié)構(gòu)簡單,便于移植與擴(kuò)展,存儲(chǔ)介質(zhì)可以為數(shù)據(jù)庫,也可以為磁盤文件;逡逑另外記錄事件時(shí)只有插入操作,沒有更新和刪除操作,很多情況都不需要事務(wù)來逡逑專門控制,對(duì)于高并發(fā)的系統(tǒng)而言會(huì)有較大收益;事件本身也可以作為審計(jì)日志逡逑來使用,如果沒有事件溯源模型,就需要為系統(tǒng)維護(hù)單獨(dú)的審計(jì)日志,而使用單逡逑獨(dú)的審計(jì)日志就意味著有兩個(gè)“真相”,事件和審計(jì)日志就會(huì)有不一致的風(fēng)險(xiǎn)。逡逑當(dāng)然,事件規(guī)模發(fā)展得比較龐大時(shí),重放事件是一個(gè)非常耗時(shí)的工程,尤其逡逑在系統(tǒng)剛啟動(dòng)時(shí),響應(yīng)速度是客戶端難以忍受的,而且查詢某一時(shí)刻的狀態(tài)變得逡逑非常麻煩,每次都需要從初始狀態(tài)開始構(gòu)建,代價(jià)非常高。解決的辦法是為系統(tǒng)逡逑狀態(tài)階段性的創(chuàng)建快照,這樣在查詢狀態(tài)時(shí)只需要在臨近的快照上重放少量的事逡逑件即可。逡逑事件溯源模型是只X棽患醯,祹呕各c刺母謀涑齟恚荒薌虻サ厴境皰義獻(xiàn)刺謀淶氖錄,这违背撂K鍪錄菰吹幕糾砟睢O嚳,应该灾o錄髦寫村義轄ㄒ桓齜聰蚴錄苑醋詹懦齟淼慕峁醋齔霾鉤。这庚r壇浦醋攣瘢義喜喚鍪故堤寤指吹攪慫璧淖刺,而且良c鋁艘桓鱟偌#庵址槳岡謔導(dǎo)使こ討繡義
本文編號(hào):2765104
【學(xué)位授予單位】:北京郵電大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP311.52
【圖文】:
一,,果傳遞進(jìn)來的參數(shù)滿足業(yè)務(wù)規(guī)則,則可以順利創(chuàng)建,否則應(yīng)該拋出異常,避免創(chuàng)逡逑建一個(gè)錯(cuò)誤對(duì)象。隱藏創(chuàng)建細(xì)節(jié)同樣可以避免業(yè)務(wù)邏輯泄露到應(yīng)用層,應(yīng)用層只逡逑需要簡單地調(diào)用領(lǐng)域?qū)拥墓S創(chuàng)建出期望對(duì)象即可。同時(shí)保證創(chuàng)建過程的原子性逡逑非常重要,否則創(chuàng)建過程中可能對(duì)某個(gè)對(duì)象執(zhí)行了一半的操作,將其置于未定義逡逑的狀態(tài)。創(chuàng)建聚合也是如此,聚合根創(chuàng)建之后,關(guān)聯(lián)的實(shí)體也必須完成實(shí)例化。逡逑領(lǐng)域模型中的對(duì)象可能包含重要的業(yè)務(wù)數(shù)據(jù),僅僅駐留在內(nèi)存中并不安全,逡逑系統(tǒng)宕機(jī)會(huì)造成數(shù)據(jù)丟失,因此需要通過存儲(chǔ)介質(zhì)來延續(xù)對(duì)象的生命周期,當(dāng)需逡逑要它的時(shí)候或者系統(tǒng)重啟時(shí)會(huì)重建這個(gè)對(duì)象。倉儲(chǔ)提供這樣一種機(jī)制,可以像操逡逑作集合接口一樣來管理對(duì)象,實(shí)現(xiàn)內(nèi)存對(duì)象與關(guān)系型數(shù)據(jù)的相互轉(zhuǎn)化。倉儲(chǔ)針對(duì)逡逑實(shí)體或者聚合進(jìn)行原子性封裝,向上隱藏了數(shù)據(jù)轉(zhuǎn)化的細(xì)節(jié),并且轉(zhuǎn)化過程不能逡逑被打斷,保證輸出的實(shí)體或者聚合是完整可用的。為了將領(lǐng)域?qū)优c倉儲(chǔ)層更好地逡逑隔離,通常在領(lǐng)域?qū)佣x倉儲(chǔ)的接口,而在倉儲(chǔ)層進(jìn)行具體的實(shí)現(xiàn)。通過接口封逡逑裝變化使應(yīng)用層協(xié)調(diào)領(lǐng)域?qū)ο笸瓿蓸I(yè)務(wù)邏輯,無需關(guān)心數(shù)據(jù)庫如何獲取數(shù)據(jù)。圖逡逑2-1為領(lǐng)域模型元素構(gòu)成。逡逑
事件溯源模式是在數(shù)據(jù)存儲(chǔ)層面上的創(chuàng)新與改進(jìn),領(lǐng)域事件相對(duì)于其他復(fù)雜逡逑對(duì)象,結(jié)構(gòu)簡單,便于移植與擴(kuò)展,存儲(chǔ)介質(zhì)可以為數(shù)據(jù)庫,也可以為磁盤文件;逡逑另外記錄事件時(shí)只有插入操作,沒有更新和刪除操作,很多情況都不需要事務(wù)來逡逑專門控制,對(duì)于高并發(fā)的系統(tǒng)而言會(huì)有較大收益;事件本身也可以作為審計(jì)日志逡逑來使用,如果沒有事件溯源模型,就需要為系統(tǒng)維護(hù)單獨(dú)的審計(jì)日志,而使用單逡逑獨(dú)的審計(jì)日志就意味著有兩個(gè)“真相”,事件和審計(jì)日志就會(huì)有不一致的風(fēng)險(xiǎn)。逡逑當(dāng)然,事件規(guī)模發(fā)展得比較龐大時(shí),重放事件是一個(gè)非常耗時(shí)的工程,尤其逡逑在系統(tǒng)剛啟動(dòng)時(shí),響應(yīng)速度是客戶端難以忍受的,而且查詢某一時(shí)刻的狀態(tài)變得逡逑非常麻煩,每次都需要從初始狀態(tài)開始構(gòu)建,代價(jià)非常高。解決的辦法是為系統(tǒng)逡逑狀態(tài)階段性的創(chuàng)建快照,這樣在查詢狀態(tài)時(shí)只需要在臨近的快照上重放少量的事逡逑件即可。逡逑事件溯源模型是只X棽患醯,祹呕各c刺母謀涑齟恚荒薌虻サ厴境皰義獻(xiàn)刺謀淶氖錄,这违背撂K鍪錄菰吹幕糾砟睢O嚳,应该灾o錄髦寫村義轄ㄒ桓齜聰蚴錄苑醋詹懦齟淼慕峁醋齔霾鉤。这庚r壇浦醋攣瘢義喜喚鍪故堤寤指吹攪慫璧淖刺,而且良c鋁艘桓鱟偌#庵址槳岡謔導(dǎo)使こ討繡義
本文編號(hào):2765104
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2765104.html
最近更新
教材專著