亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種插件式聯(lián)機(jī)交易處理框架

        2017-08-29 15:00:54豐朋
        電腦知識(shí)與技術(shù) 2017年21期
        關(guān)鍵詞:共享內(nèi)存聯(lián)機(jī)插件

        豐朋

        (中國(guó)銀聯(lián)股份有限公司,上海201201)

        一種插件式聯(lián)機(jī)交易處理框架

        豐朋

        (中國(guó)銀聯(lián)股份有限公司,上海201201)

        針對(duì)交易系統(tǒng)中交易類型多、交易間耦合性大,不便于應(yīng)用開發(fā)和系統(tǒng)運(yùn)維的問題,提供了一種插件式的聯(lián)機(jī)交易處理框架,能夠靈活處理各種聯(lián)機(jī)交易,在不停應(yīng)用的情況下,可以實(shí)現(xiàn)聯(lián)機(jī)交易的新增、修改、刪除操作,不同交易互不影響,從而實(shí)現(xiàn)了一個(gè)插件式、支持“熱插拔”的交易處理系統(tǒng)。不同交易所涉及的配置信息可以在數(shù)據(jù)庫表中配置、修改,并通過加載到共享內(nèi)存實(shí)時(shí)生效,最大程度地實(shí)現(xiàn)了交易處理的靈活性和實(shí)時(shí)性。

        聯(lián)機(jī)交易;熱插拔;共享內(nèi)存

        1 背景

        伴隨著“互聯(lián)網(wǎng)+”的浪潮,越來越多的行業(yè)開始采用互聯(lián)網(wǎng)化的思維來審視自己的工作內(nèi)容和發(fā)展戰(zhàn)略,基于互聯(lián)網(wǎng)的解決方案也逐漸成為各行各業(yè)面對(duì)問題時(shí)的首選,而曾經(jīng)作為某些行業(yè)特有的一些做法或行為方式,借助互聯(lián)網(wǎng),也逐步被更多的行業(yè)接納、采用,在新的領(lǐng)域發(fā)揮出獨(dú)特的作用。聯(lián)機(jī)交易系統(tǒng),在多數(shù)人的理解中,曾經(jīng)是專指銀行的交易處理系統(tǒng),我們?nèi)粘5乃⒖ㄏM(fèi)、還款、轉(zhuǎn)賬,都與此系統(tǒng)息息相關(guān);而現(xiàn)在,聯(lián)機(jī)交易系統(tǒng)這個(gè)概念正在逐步延伸,線上一張火車票購買、一件商品的下單、一次營(yíng)銷秒殺活動(dòng)的參與,都可以說是一筆交易,而對(duì)應(yīng)的后臺(tái)系統(tǒng),都可以理解成聯(lián)機(jī)交易系統(tǒng)。行業(yè)的多樣性、用戶行為的多樣性、易變性,決定了對(duì)應(yīng)場(chǎng)景中交易的多樣性和易變性。如何在一個(gè)聯(lián)機(jī)交易系統(tǒng)中靈活處理各種交易,使得各個(gè)交易支持熱插拔式、互不影響的操作,是所有聯(lián)機(jī)交易系統(tǒng)面臨的共同問題[1-2]。

        2 總體框架

        本文所提出的交易處理框架,包括數(shù)據(jù)庫、共享內(nèi)存、交易處理引擎、交易處理動(dòng)態(tài)庫四個(gè)部分,系統(tǒng)結(jié)構(gòu)圖如下所示:

        圖1 系統(tǒng)結(jié)構(gòu)圖

        數(shù)據(jù)庫一方面承擔(dān)了配置信息落地存儲(chǔ)的角色,聯(lián)機(jī)交易中的相關(guān)配置信息,如傳統(tǒng)銀行交易中借貸記的科目、營(yíng)銷秒殺交易中的限制規(guī)則等信息,通過管理平臺(tái)配置后,在數(shù)據(jù)庫中落地存儲(chǔ),同時(shí)可以通過管理平臺(tái)進(jìn)行增刪改查等操作;另一方面,數(shù)據(jù)庫也承擔(dān)了交易數(shù)據(jù)落地存儲(chǔ)的角色,以便實(shí)現(xiàn)交易的界面查詢、對(duì)賬報(bào)表生成等后繼功能。根據(jù)聯(lián)機(jī)交易系統(tǒng)對(duì)交易數(shù)據(jù)完整性和實(shí)時(shí)性的要求,交易數(shù)據(jù)的記錄環(huán)節(jié)可以同步記錄,也可以通過kafka等消息中間件實(shí)現(xiàn)異步記錄:交易處理服務(wù)產(chǎn)生交易記錄,作為生產(chǎn)者將交易記錄作為消息推送至消息中間件,然后有單獨(dú)的消費(fèi)者進(jìn)行將交易記錄從消息中間件上取出,存入數(shù)據(jù)庫。

        共享內(nèi)存加載數(shù)據(jù)庫中存儲(chǔ)的交易配置信息,包含了交易共用的配置信息及單筆交易的個(gè)性化配置信息。聯(lián)機(jī)交易處理過程中,所有配置信息均通過各個(gè)應(yīng)用主機(jī)的共享內(nèi)存獲取,避免直接讀庫引發(fā)單點(diǎn)問題及性能問題,從而實(shí)現(xiàn)交易的高效處理。通過管理平臺(tái)修改相關(guān)配置后,可實(shí)時(shí)刷新共享內(nèi)存,達(dá)到實(shí)時(shí)生效的業(yè)務(wù)效果。本文同時(shí)提出了一種兩階段刷新的機(jī)制,保證在刷新過程中不影響聯(lián)機(jī)交易,將在第3章節(jié)詳細(xì)闡述。

        交易處理引擎包含了接入/接出的通訊適配、公用的報(bào)文拆包/組包服務(wù)及具體的交易處理調(diào)度邏輯。對(duì)報(bào)文拆包后,根據(jù)獲取到的交易代碼,查找共享內(nèi)存,找到對(duì)應(yīng)的交易處理動(dòng)態(tài)庫,進(jìn)行實(shí)時(shí)動(dòng)態(tài)調(diào)度,完成交易的具體處理。

        交易處理動(dòng)態(tài)庫由一系列的.so動(dòng)態(tài)庫文件組成,每個(gè)動(dòng)態(tài)庫文件對(duì)應(yīng)一種交易類型的處理。當(dāng)動(dòng)態(tài)庫文件被交易處理引擎調(diào)度時(shí),其將按照預(yù)設(shè)的邏輯,完成個(gè)性化的交易處理并返回處理結(jié)果[3]。

        3 交易處理流程

        基于上述總體框架,系統(tǒng)的交易處理流程如下:

        1)在數(shù)據(jù)庫中配置交易處理所需的各種配置信息。這些信息又分所有交易共用的配置(如清算日期、報(bào)文拆包/組包規(guī)則等)和針對(duì)每種交易的個(gè)性化配置(如借貸科目、營(yíng)銷規(guī)則等)。通過實(shí)現(xiàn)交易屬性的可配置化,極大提高了交易處理的靈活性,當(dāng)需要對(duì)個(gè)別屬性做調(diào)整或新增相關(guān)屬性時(shí),只要修改或新增相關(guān)數(shù)據(jù)庫記錄即可。

        2)采用兩階段刷新機(jī)制,將配置信息加載到共享內(nèi)存。使用開放地址的哈希存儲(chǔ)算法,提高交易處理時(shí)查找相關(guān)配置的速度。當(dāng)數(shù)據(jù)庫中的配置有更新時(shí),只要刷新共享內(nèi)存,即可實(shí)現(xiàn)同步生效。

        3)交易處理引擎始終處于偵聽狀態(tài),用來接收交易,進(jìn)行所有交易都必需的共性操作,然后動(dòng)態(tài)調(diào)用個(gè)性化的交易處理動(dòng)態(tài)庫,具體流程如下:

        圖2 交易處理引擎流程

        由于采用了動(dòng)態(tài)調(diào)用,動(dòng)態(tài)庫不是在交易處理引擎啟動(dòng)時(shí)加載的,而是在處理具體交易時(shí),根據(jù)報(bào)文關(guān)鍵域信息動(dòng)態(tài)拼接動(dòng)態(tài)庫名,然后實(shí)施調(diào)用,因此不同交易間無耦合,更新單個(gè)交易處理流程不影響交易處理引擎及其他交易處理流程的正常運(yùn)行,從而實(shí)現(xiàn)了交易處理的插件式、“熱插拔”的操作[4]。

        4)交易處理動(dòng)態(tài)庫負(fù)責(zé)處理交易個(gè)性化的業(yè)務(wù)邏輯。每種交易對(duì)應(yīng)一個(gè)動(dòng)態(tài)庫,如同交易處理引擎的插件,被調(diào)用時(shí)完成各自的功能。具體流程如下:

        圖3 交易處理動(dòng)態(tài)庫流程

        基于本框架,可以插件式管理不同的交易處理流程,具體如下:

        1)新增一種交易類型時(shí),通過編碼、編譯,發(fā)布與之對(duì)應(yīng)的交易處理動(dòng)態(tài)庫,在數(shù)據(jù)庫中增加對(duì)應(yīng)配置,然后刷新共享內(nèi)存。

        2)修改一種現(xiàn)有交易處理流程時(shí),通過修改代碼、編譯,發(fā)布新的動(dòng)態(tài)庫,覆蓋原來的即可,如有必要,可更新數(shù)據(jù)庫中對(duì)應(yīng)配置,然后刷新共享內(nèi)存。

        3)刪除一種現(xiàn)有交易處理流程時(shí),只要將對(duì)應(yīng)的動(dòng)態(tài)庫刪掉,將數(shù)據(jù)庫中的對(duì)應(yīng)配置刪除,然后刷新共享內(nèi)存即可。

        4 共享內(nèi)存的兩階段刷新

        本文提供了一種多機(jī)環(huán)境下共享內(nèi)存的同步機(jī)制,將共享內(nèi)存中的數(shù)據(jù)同步動(dòng)作分為刷新和切換兩個(gè)階段,任何一個(gè)節(jié)點(diǎn)上的數(shù)據(jù)更新能夠同步的應(yīng)用到其他節(jié)點(diǎn)上,從而保持?jǐn)?shù)據(jù)的一致性。通過共享內(nèi)存主備塊的設(shè)計(jì)和同步服務(wù)調(diào)用機(jī)制,保證了數(shù)據(jù)的同步切換及各個(gè)節(jié)點(diǎn)切換動(dòng)作的事務(wù)性(全部成功或全部失敗),并使得同步過程對(duì)系統(tǒng)運(yùn)行不產(chǎn)生影響[5]。

        在本方案中,數(shù)據(jù)庫作為共享內(nèi)存中數(shù)據(jù)的來源和存儲(chǔ)點(diǎn),采用同步服務(wù)調(diào)用的方式實(shí)現(xiàn)多機(jī)間的通信。每個(gè)節(jié)點(diǎn)上的共享內(nèi)存包含結(jié)構(gòu)完全相同的主塊和備塊,并能相互切換[6-7]。共享內(nèi)存系統(tǒng)框圖如下:

        圖4 共享內(nèi)存系統(tǒng)框圖

        共享內(nèi)存刷新流程如下:

        1)系統(tǒng)初始化時(shí),首先配置數(shù)據(jù)庫,然后每個(gè)節(jié)點(diǎn)讀取數(shù)據(jù)庫中的數(shù)據(jù),加載到內(nèi)存中的主塊和備塊中,并激活主塊。此時(shí)各個(gè)節(jié)點(diǎn)上共享內(nèi)存的數(shù)據(jù)是一致的。

        2)系統(tǒng)運(yùn)行過程中,任意一個(gè)節(jié)點(diǎn)可能接收到來自外部的數(shù)據(jù)輸入,這些數(shù)據(jù)的處理結(jié)果可能會(huì)要求共享內(nèi)存中的數(shù)據(jù)發(fā)生變化。此種情況下,接收外部數(shù)據(jù)的節(jié)點(diǎn)首先把要變化的共享內(nèi)存數(shù)據(jù)更新到數(shù)據(jù)庫中。也可能該節(jié)點(diǎn)本身并未對(duì)數(shù)據(jù)庫中的數(shù)據(jù)產(chǎn)生改變,只是收到了數(shù)據(jù)庫中數(shù)據(jù)發(fā)生變化、需要重新刷新共享內(nèi)存的通知。

        3)該節(jié)點(diǎn)通過同步服務(wù)調(diào)用的方式,通知其本身和其他節(jié)點(diǎn)根據(jù)最新的數(shù)據(jù)庫數(shù)據(jù)刷新共享內(nèi)存?zhèn)鋲K。由于各個(gè)節(jié)點(diǎn)的運(yùn)行環(huán)境和性能的差別,每個(gè)節(jié)點(diǎn)的刷新動(dòng)作可能消耗不同的時(shí)間。該步驟結(jié)束后,各個(gè)節(jié)點(diǎn)上共享內(nèi)存的備塊保存了最新的、與數(shù)據(jù)庫一致的數(shù)據(jù)[8]。同步服務(wù)調(diào)用可以通過自身系統(tǒng)的編碼實(shí)現(xiàn),也可以通過中間件實(shí)現(xiàn)。

        4)該節(jié)點(diǎn)再通過同步服務(wù)調(diào)用的方式,通知其本身和其他節(jié)點(diǎn)切換共享內(nèi)存,即激活備塊成為主塊,原來的主塊變成備塊。由于切換的動(dòng)作只涉及修改內(nèi)存中的一個(gè)標(biāo)志位,可以認(rèn)為各個(gè)節(jié)點(diǎn)同時(shí)實(shí)現(xiàn)切換。該步驟之后,各個(gè)節(jié)點(diǎn)使用最新的共享內(nèi)存數(shù)據(jù),且與數(shù)據(jù)庫保持了一致。

        5 結(jié)束語

        本文提供的插件式聯(lián)機(jī)交易處理框架具有靈活、高效的特點(diǎn),交易間的耦合性小,易于不同的人同時(shí)開發(fā),同時(shí)交易的修改、增加、刪除操作方便、快捷,易于維護(hù),生產(chǎn)穩(wěn)定性高。

        [1]李林峰.分布式服務(wù)框架原理與實(shí)踐[M].北京:電子工業(yè)出版社,2016:1-25.

        [2]柳偉衛(wèi).分布式系統(tǒng)常用技術(shù)及案例分析[M].北京:電子工業(yè)出版社,2017:52-83.

        [3]StevensW R.Unix環(huán)境高級(jí)編程[M].戚正偉,張亞英,尤晉元,譯.北京:人民郵電出版社,2014:147-168.

        [4]王磊.微服務(wù)架構(gòu)與實(shí)踐[M].北京:電子工業(yè)出版社,2015:41-69.

        [5]Stevens W R.UNIX網(wǎng)絡(luò)編程卷2進(jìn)程間通信[M].北京:人民郵電出版社,2015:244-259.

        [6]白文榮.軟件工程與設(shè)計(jì)模式[M].北京:清華大學(xué)出版社, 2017:128-156.

        [7]秦小波.設(shè)計(jì)模式之禪[M].北京:機(jī)械工業(yè)出版社,2014:58-64.

        [8]Erich Gamma.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].李英軍,譯.北京:機(jī)械工業(yè)出版社,2014:35-70.

        TP311.52

        A

        1009-3044(2017)21-0001-02

        2017-06-08

        豐朋(1983—),男,山東日照人,中級(jí)工程師,碩士,主要研究方向?yàn)榻鹑谟?jì)算機(jī)工程。

        猜你喜歡
        共享內(nèi)存聯(lián)機(jī)插件
        多聯(lián)機(jī)安裝施工技術(shù)探討
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        通過QT實(shí)現(xiàn)進(jìn)程間的通信
        基于PCI總線的多處理器協(xié)同機(jī)制研究
        高溫多聯(lián)機(jī)空調(diào)系統(tǒng)的控制方式研究
        CALIS聯(lián)機(jī)合作編目中的授權(quán)影印書規(guī)范著錄
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Revit MEP的插件制作探討
        QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動(dòng)設(shè)計(jì)
        電子世界(2014年21期)2014-04-29 06:41:36
        分析Automation技術(shù)在Word聯(lián)機(jī)考試系統(tǒng)中的作用
        河南科技(2014年16期)2014-02-27 14:13:04
        一区二区三区在线日本视频 | 97人人模人人爽人人喊电影| 亚洲在AV极品无码天堂手机版 | 初尝黑人巨砲波多野结衣| 丝袜美腿网站一区二区| 日本av一区二区三区四区| 少妇性l交大片7724com| 全免费a级毛片免费看网站| 国产福利片无码区在线观看| 青青青视频手机在线观看| 久久熟妇少妇亚洲精品| 国产高清一区二区三区视频| 国产精品区一区二区三在线播放| 国产精品成人久久a级片| av高清在线不卡直播| 欧美极品少妇无套实战| 亚洲精品乱码久久久久久麻豆不卡| av网站一区二区三区| 日本无遮挡真人祼交视频| 亚洲国产美女精品久久久 | 国产精品狼人久久影院软件介绍| 内地老熟女老少配视频| 五月婷婷六月激情| 国产一区二区三区乱码在线| 中文无码av一区二区三区| 欧美精品人人做人人爱视频| 色爱无码A V 综合区| av免费在线播放一区二区| 国产精品久久久久一区二区三区| 无码人妻精品一区二区三区在线 | 蜜桃视频成年人在线观看| 国产精品国产亚洲精品看不卡| 亲子乱aⅴ一区二区三区下载| 成人免费无码视频在线网站| 日本一区二区三区经典视频| 性无码专区无码| 国产精品理人伦国色天香一区二区| 在线精品亚洲一区二区三区| 亚洲日韩成人无码| 装睡被陌生人摸出水好爽| 久久精品国产亚洲av成人擦边|