亚洲免费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
        久草国产手机视频在线观看| 午夜dj在线观看免费视频| 在线一区不卡网址观看| 五码人妻少妇久久五码| 日韩精品一二三区乱码| 亚洲av日韩aⅴ无码色老头| 国产98在线 | 免费| 亚洲国产综合精品久久av| 亚洲成年国产一区二区| 中国老熟女重囗味hdxx| 久久ri精品高清一区二区三区| 亚洲精品国产精品av| 国产一区二区三区视频在线观看| 99久久人妻无码精品系列| 人妻无码中文专区久久五月婷| 精品丝袜一区二区三区性色| 日韩精品视频免费网站| 色噜噜狠狠狠综合曰曰曰| 国产精品一区二区在线观看完整版| 亚洲国产av中文字幕| 国产欧美va欧美va香蕉在线| 东北寡妇特级毛片免费| 国产精品中文第一字幕| 中文字幕一区乱码在线观看| 99久久亚洲精品日本无码| 国产午夜激无码av毛片| 国产精品三级av一区二区| 少妇一区二区三区久久| av午夜久久蜜桃传媒软件| 在线亚洲+欧美+日本专区| 中文字幕文字幕视频在线| 又大又粗欧美黑人aaaaa片| 国精产品一区二区三区| 色琪琪一区二区三区亚洲区| 亚洲国产国语在线对白观看| 蜜臀av 国内精品久久久| 国产精品国产三级国产av创| 日韩国产精品一区二区三区| 国产精品v片在线观看不卡| 久久天天躁狠狠躁夜夜2020!| 久久亚洲宅男天堂网址|