基于事件溯源的積分現(xiàn)金交易系統(tǒng)
【學位單位】:北京郵電大學
【學位級別】:碩士
【學位年份】:2019
【中圖分類】:F724.6;F274
【部分圖文】:
圖2-丨領(lǐng)域驅(qū)動設(shè)計的分層架構(gòu)圖??表示層直接面向用戶,用于接收用戶命令,并進一步調(diào)用其他三層的服務,??最終向用戶返回需要呈現(xiàn)的數(shù)據(jù)。應用層為表示層提供應用功能,本身不實現(xiàn)業(yè)??務邏輯,主要起協(xié)調(diào)作用,通過調(diào)用領(lǐng)域?qū)拥姆⻊諄韺崿F(xiàn)這些功能。領(lǐng)域?qū)邮羌??構(gòu)的核心部分,使用領(lǐng)域模型表達業(yè)務邏輯,深刻反映領(lǐng)域的本質(zhì);A(chǔ)設(shè)施層??主要提供持久化、消息通信等服務。??領(lǐng)域模型元素一般分為7大類,分別是:實體(Entity)、值對象(Value?Object)、??聚合(Aggregate)、服務(Service)、工廠(Factory)、倉儲(Repository)、領(lǐng)域??事件(Domain?Event)。??每個實體都有唯一的標識符,代表現(xiàn)實領(lǐng)域業(yè)務對象,可以被持久化。值對??象和實體的最大區(qū)別就在于沒有唯一標識符,值對象更關(guān)心對象的內(nèi)容,通常是??臨時的、只讀的、不可變的。聚合是指邏輯上緊密相連的一些實體或值對象的集??合,定義了對象之間的邊界。每個聚合都有一個聚合根,外界不能直接訪問聚合??內(nèi)部的對象,只能與聚合根交互。服務可以進一步分為應用層服務、領(lǐng)域?qū)臃⻊??和基礎(chǔ)層服務。在一些領(lǐng)域中,存在不屬于任何實體或值對象的模型,它們是實??
按順序進行處理,最終得到最新狀態(tài),這一過程稱為事件回放。??在CRUD系統(tǒng)中,實體與數(shù)據(jù)庫記錄一一對應,對實體的操作直接映射為對??數(shù)據(jù)庫操作,因此會存在性能問題。例如,在系統(tǒng)開發(fā)中,一般會使用ORM框??架將數(shù)據(jù)庫中的記錄映射為程序中的對象。當修改一條記錄中的某個字段時,需??要先獲取該對象,然后更新對象這一屬性,最后將該對象回寫到數(shù)據(jù)庫中。因為??對整個對象的讀取與存儲涉及了其他無關(guān)字段,所以產(chǎn)生了額外的開銷。從并發(fā)??操作的角度來看,當對同一對象同時進行讀和寫時,會導致數(shù)據(jù)競爭,產(chǎn)生讀寫??沖突。通常解決沖突需要通過加鎖來實現(xiàn)代碼同步,而鎖的引入會產(chǎn)生上下文切??換、死鎖等問題。10操作速度比內(nèi)存速度低幾個數(shù)量級,在并發(fā)量不大的情況??下,直接操作數(shù)據(jù)庫并沒有明顯的性能問題,但在高并發(fā)情況下數(shù)據(jù)庫性能會成??為瓶頸。在涉及到對多個字段同時修改的業(yè)務場景中,傳統(tǒng)的方式是使用數(shù)據(jù)庫??事務來保證一致性。數(shù)據(jù)庫事務會依賴對數(shù)據(jù)行、表加鎖來實現(xiàn)隔離性,因此并??發(fā)級別只能在行、表級別,導致程序難以優(yōu)化。在所有的數(shù)據(jù)庫操作中,更新操??作最為耗時,插入操作開銷最小,因此使用插入操作替代更新操作,可以最大化??利用數(shù)據(jù)庫的性能。事件溯源應用了這一思想,采用插入操作對事件進行持久化。??事件溯源工作過程如圖2-2所示。??
操作:修改內(nèi)部狀態(tài)、向消息發(fā)送者回復一條消息、向其他Actor發(fā)出一條消息??網(wǎng)。Actor模型的原理如圖2-3所示。??I?Actor?1?)??,V?7?\發(fā)送港息??5?-公0爲...??圏,Itmf?nrif??mm?莊踴??圖2-3?Actor模型示意圖??Akka在JVM平臺上實現(xiàn)了?Actor模型⑷],可以用來構(gòu)建高并發(fā)、分布式的??消息驅(qū)動系統(tǒng)。在JVM平臺中,并發(fā)是由線程實現(xiàn)的,線程之間存在內(nèi)存可見??性的問題。Akka基于低級別的并發(fā)模型(原子變量、鎖),以并發(fā)容器??(CurrentHashMap、CurrentLinkedQueue?等)為工具,實現(xiàn)了高級別的抽象???Actor模型。Akka中的Actor具有引用透明的特點,每個Actoi?實體都有唯一的??Actor引用(ActorRef)
【相似文獻】
相關(guān)期刊論文 前10條
1 黃澤峰;;論無現(xiàn)金交易對日常生活的影響[J];現(xiàn)代商貿(mào)工業(yè);2018年01期
2 洪濤;;我國無現(xiàn)金交易的發(fā)展趨勢[J];時代經(jīng)貿(mào);2017年22期
3 龐健;;醫(yī)院現(xiàn)金交易的變革與探討[J];財經(jīng)界(學術(shù)版);2010年06期
4 中國人民銀行海口中心支行反洗錢處課題組;覃道愛;;海南省大額現(xiàn)金交易現(xiàn)狀、原因與對策分析[J];海南金融;2010年12期
5 吳崇攀;韓芳;朱米均;;限制大額現(xiàn)金交易的非經(jīng)濟手段研究[J];南方金融;2009年05期
6 劉春朗;遏制利用現(xiàn)金交易偷稅[J];福建稅務;1997年07期
7 齊文祥;;拎兜案件的特點與偵破對策[J];公安論壇;1988年02期
8 袁春文;商品經(jīng)濟發(fā)展并不排斥戰(zhàn)友之情[J];南京政治學院學報;1989年03期
9 鄭文彬;企業(yè)法的執(zhí)行問題芻議[J];福建論壇(經(jīng)濟社會版);1989年04期
10 李玉斌;;1988年市場貨幣流通的三大特點[J];金融研究;1989年04期
相關(guān)碩士學位論文 前4條
1 鐘一帆;基于事件溯源的積分現(xiàn)金交易系統(tǒng)[D];北京郵電大學;2019年
2 張晟;基于C#的甜品店現(xiàn)金交易系統(tǒng)的設(shè)計與實現(xiàn)[D];電子科技大學;2014年
3 王愷;網(wǎng)絡(luò)游戲虛擬物現(xiàn)金交易稅收征管法律問題研究[D];山西財經(jīng)大學;2011年
4 蘇初旭;基于ARM的收款保險箱系統(tǒng)設(shè)計與實現(xiàn)[D];西安科技大學;2012年
本文編號:2848746
本文鏈接:http://sikaile.net/jingjilunwen/guojimaoyilunwen/2848746.html