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