[發(fā)明專利]一種實(shí)現(xiàn)分布式事務(wù)的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201310655744.2 | 申請(qǐng)日: | 2013-12-06 |
| 公開(kāi)(公告)號(hào): | CN103631647A | 公開(kāi)(公告)日: | 2014-03-12 |
| 發(fā)明(設(shè)計(jì))人: | 郭永強(qiáng);易旭 | 申請(qǐng)(專利權(quán))人: | 北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司 |
| 主分類號(hào): | G06F9/46 | 分類號(hào): | G06F9/46 |
| 代理公司: | 北京德琦知識(shí)產(chǎn)權(quán)代理有限公司 11018 | 代理人: | 閻敏;宋志強(qiáng) |
| 地址: | 100080 北京*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 實(shí)現(xiàn) 分布式 事務(wù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及分布式事務(wù)技術(shù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)分布式事務(wù)的方法和裝置。
背景技術(shù)
當(dāng)前企業(yè)級(jí)的應(yīng)用中,有很多的系統(tǒng)涉及到多個(gè)數(shù)據(jù)源,針對(duì)多個(gè)數(shù)據(jù)源的處理就要涉及到分布式事務(wù);分布式事務(wù)實(shí)現(xiàn)的好與壞,直接影響到該企業(yè)級(jí)應(yīng)用的性能以及用戶體驗(yàn)。
現(xiàn)有的實(shí)現(xiàn)分布式事務(wù)的解決方案之一是利用一些商用的應(yīng)用服務(wù)器來(lái)實(shí)現(xiàn),比如WebSphere。
另外一種普遍的分布式事務(wù)解決方案是將涉及到多個(gè)數(shù)據(jù)源的操作封裝為一個(gè)大的事務(wù),如圖1所示。啟動(dòng)事務(wù)后,順序進(jìn)行涉及多個(gè)數(shù)據(jù)源的多個(gè)操作,如果在這多個(gè)操作中出現(xiàn)操作失敗或者是出現(xiàn)異常,則回滾該事務(wù)。
上述兩種分布式事務(wù)實(shí)現(xiàn)方案的缺點(diǎn)是:
第一種,利用商用的應(yīng)用服務(wù)器實(shí)現(xiàn)分布式事務(wù),需要購(gòu)買商用應(yīng)用服務(wù)器的授權(quán),代價(jià)相對(duì)昂貴。
第二種,利用將涉及多個(gè)數(shù)據(jù)源的多個(gè)操作封裝為一個(gè)事務(wù)的方式雖然能夠?qū)崿F(xiàn)分布式事務(wù),但是針對(duì)不同數(shù)據(jù)源的多個(gè)操作必須順序執(zhí)行,整個(gè)系統(tǒng)的性能會(huì)因此受到影響。
發(fā)明內(nèi)容
本發(fā)明提供了一種實(shí)現(xiàn)分布式事務(wù)的方法,能夠?qū)崿F(xiàn)針對(duì)多個(gè)數(shù)據(jù)源的事務(wù)并發(fā)進(jìn)行,且無(wú)需使用專門(mén)的商用應(yīng)用服務(wù)器。
本發(fā)明提供了一種實(shí)現(xiàn)分布式事務(wù)的裝置,能夠?qū)崿F(xiàn)針對(duì)多個(gè)數(shù)據(jù)源的事務(wù)并發(fā)進(jìn)行,且無(wú)需使用專門(mén)的商用應(yīng)用服務(wù)器。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種實(shí)現(xiàn)分布式事務(wù)的方法,包括:
設(shè)置N個(gè)子線程,每個(gè)子線程負(fù)責(zé)處理分布式事務(wù)中的一個(gè)事務(wù);其中,各個(gè)事務(wù)針對(duì)不同的數(shù)據(jù)源,每個(gè)事務(wù)包括針對(duì)該數(shù)據(jù)源的一個(gè)以上操作;
初始化CountDownLatch類,將所述CountDownLatch類計(jì)數(shù)器的初始值設(shè)置為N;
主線程調(diào)用CountDownLatch類的await方法;
分別啟動(dòng)所述N個(gè)子線程;當(dāng)一個(gè)子線程執(zhí)行完成時(shí),調(diào)用CountDownLatch類的countDown方法,使得所述CountDownLatch類計(jì)數(shù)器的值減1;
當(dāng)所述CountDownLatch類計(jì)數(shù)器的值為0時(shí),繼續(xù)執(zhí)行所述主線程。
上述方法可以進(jìn)一步包括:當(dāng)一個(gè)子線程執(zhí)行出現(xiàn)異常時(shí),將已經(jīng)執(zhí)行完畢的所有子線程回滾,并將所述CountDownLatch類計(jì)數(shù)器的值設(shè)置為0。
當(dāng)所有子線程執(zhí)行完成并且CountDownLatch類的計(jì)數(shù)器減至0時(shí),記錄所述分布式事務(wù)為成功狀態(tài);
當(dāng)子線程執(zhí)行出現(xiàn)異常時(shí),記錄所述分布式事務(wù)為失敗狀態(tài)。
一種實(shí)現(xiàn)分布式事務(wù)的裝置,包括:
初始化模塊,用于設(shè)置N個(gè)子線程,每個(gè)子線程負(fù)責(zé)處理分布式事務(wù)中的一個(gè)事務(wù);其中,各個(gè)事務(wù)針對(duì)不同的數(shù)據(jù)源,每個(gè)事務(wù)包括針對(duì)該數(shù)據(jù)源的一個(gè)以上操作;還用于初始化CountDownLatch類,將所述CountDownLatch類計(jì)數(shù)器的初始值設(shè)置為N;
主線程控制模塊,用于控制主線程調(diào)用CountDownLatch類的await方法,當(dāng)所述CountDownLatch類計(jì)數(shù)器的值為0時(shí),繼續(xù)執(zhí)行所述主線程;
子線程控制模塊,用于分別啟動(dòng)所述N個(gè)子線程;當(dāng)一個(gè)子線程執(zhí)行完成時(shí),調(diào)用CountDownLatch類的countDown方法,使得所述CountDownLatch類計(jì)數(shù)器的值減1。
上述裝置中,子線程控制模塊還可以用于,當(dāng)一個(gè)子線程執(zhí)行出現(xiàn)異常時(shí),將已經(jīng)執(zhí)行完畢的所有子線程回滾,并將所述CountDownLatch類計(jì)數(shù)器的值設(shè)置為0。
當(dāng)所有子線程執(zhí)行完成并且CountDownLatch類的計(jì)數(shù)器減至0時(shí),記錄所述分布式事務(wù)為成功狀態(tài);當(dāng)子線程執(zhí)行出現(xiàn)異常時(shí),記錄所述分布式事務(wù)為失敗狀態(tài)。
可見(jiàn),本發(fā)明提出的實(shí)現(xiàn)分布式事務(wù)的方法和裝置,設(shè)置N個(gè)子線程,每個(gè)子線程負(fù)責(zé)處理分布式事務(wù)中的一個(gè)事務(wù),并且通過(guò)CountDownLatch類來(lái)實(shí)現(xiàn)N個(gè)子線程同步執(zhí)行,從而實(shí)現(xiàn)了針對(duì)多個(gè)數(shù)據(jù)源的多個(gè)分布式事務(wù)并發(fā)進(jìn)行。
附圖說(shuō)明
圖1為現(xiàn)有技術(shù)中分布式事務(wù)的實(shí)現(xiàn)方式;
圖2為本發(fā)明提出的實(shí)現(xiàn)分布式事務(wù)的方法流程圖;
圖3為本發(fā)明實(shí)施例一的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
本發(fā)明提出一種實(shí)現(xiàn)分布式事務(wù)的方法,如圖2為該方法實(shí)現(xiàn)流程圖,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310655744.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置
- 一種事務(wù)處理的方法和裝置
- 分布式事務(wù)處理方法與系統(tǒng)
- 一種融合原生事務(wù)和邏輯事務(wù)的方法
- 用于聚結(jié)內(nèi)存事務(wù)的方法和系統(tǒng)
- 事務(wù)處理方法、事務(wù)參與節(jié)點(diǎn)及事務(wù)協(xié)調(diào)節(jié)點(diǎn)
- 跨進(jìn)程分布式事務(wù)控制方法及相關(guān)系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 一種分布式事務(wù)處理的智能監(jiān)控方法及服務(wù)器
- 分布式事務(wù)處理方法及裝置
- 讀寫(xiě)事務(wù)控制方法、系統(tǒng)、終端設(shè)備及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





