[發(fā)明專(zhuān)利]跨進(jìn)程分布式事務(wù)控制方法及相關(guān)系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201610083820.0 | 申請(qǐng)日: | 2016-02-06 |
| 公開(kāi)(公告)號(hào): | CN107045454B | 公開(kāi)(公告)日: | 2020-06-26 |
| 發(fā)明(設(shè)計(jì))人: | 周俊杰;王世軍 | 申請(qǐng)(專(zhuān)利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F9/46 | 分類(lèi)號(hào): | G06F9/46;G06F9/54 |
| 代理公司: | 深圳市深佳知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44285 | 代理人: | 王仲凱 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 跨進(jìn) 分布式 事務(wù) 控制 方法 相關(guān) 系統(tǒng) | ||
本發(fā)明提供跨進(jìn)程分布式事務(wù)控制方法及相關(guān)系統(tǒng)。在該方法中,第一事務(wù)管理器對(duì)應(yīng)主事務(wù),創(chuàng)建包括全局事務(wù)狀態(tài)的全局事務(wù)上下文,通過(guò)RPC將全局事務(wù)上下文發(fā)送給第二事務(wù)管理器。第二事務(wù)管理器對(duì)應(yīng)子事務(wù),使用子事務(wù)相關(guān)信息更新接收到的全局事務(wù)上下文并通過(guò)RPC發(fā)送給第一事務(wù)管理器。第一事務(wù)管理器在相應(yīng)的服務(wù)完成業(yè)務(wù)邏輯后,通過(guò)全局事務(wù)快照器將全局事務(wù)上下文發(fā)送至消息中間件,并通知第二事務(wù)管理器提交子事務(wù),在子事務(wù)提交成功后,再提交主事務(wù),并在主事務(wù)提交成功后,通過(guò)全局事務(wù)快照器通知消息中間件將全局事務(wù)上下文中的全局事務(wù)狀態(tài)更改為完成。在實(shí)現(xiàn)對(duì)分布式事務(wù)的控制的同時(shí),還保持了數(shù)據(jù)更新的一致性。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及跨進(jìn)程分布式事務(wù)控制技術(shù)。
背景技術(shù)
云應(yīng)用下,業(yè)務(wù)系統(tǒng)為了支持?jǐn)U展性,都遵從分布式架構(gòu)。在分布式架構(gòu)中,一個(gè)業(yè)務(wù)不再局限于在一個(gè)進(jìn)程中執(zhí)行,其可能會(huì)拆分到不同的進(jìn)程上,由不同進(jìn)程上的服務(wù)發(fā)起事務(wù)來(lái)共同完成。
例如,假定某一業(yè)務(wù)需要完成Lucy向lily轉(zhuǎn)賬500元,則其可能拆成到兩個(gè)進(jìn)程中,由其中一個(gè)進(jìn)程中的服務(wù)完成的事務(wù)是將Lucy賬戶(hù)中的余額減500,由另一個(gè)進(jìn)程中的服務(wù)完成的事務(wù)是將lily賬戶(hù)中的余額增加500。事務(wù)提交后,最終的結(jié)果是,多個(gè)進(jìn)程中的服務(wù)各自更新數(shù)據(jù)到各自的數(shù)據(jù)庫(kù)。
上述不同的進(jìn)程可能在不同的虛擬機(jī)甚至在不同的物理機(jī)上運(yùn)行。那么保持它們數(shù)據(jù)更新的一致性就成了一種挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供跨進(jìn)程分布式事務(wù)控制方法及相關(guān)系統(tǒng),以實(shí)現(xiàn)地分布式場(chǎng)景下對(duì)事務(wù)的控制,同時(shí)保持?jǐn)?shù)據(jù)更新的一致性。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下方案:
一方面,本申請(qǐng)的實(shí)施例提供一種跨進(jìn)程分布式事務(wù)控制方法,第一事務(wù)管理器對(duì)應(yīng)主事務(wù),第二事務(wù)管理器對(duì)應(yīng)子事務(wù),第一事務(wù)管理器創(chuàng)建包括全局事務(wù)狀態(tài)的全局事務(wù)上下文,通過(guò)RPC將全局事務(wù)上下文發(fā)送給第二事務(wù)管理器。第二事務(wù)管理器對(duì)應(yīng)子事務(wù),使用子事務(wù)相關(guān)信息更新接收到的全局事務(wù)上下文并通過(guò)RPC發(fā)送給第一事務(wù)管理器。第一事務(wù)管理器在相應(yīng)的服務(wù)完成業(yè)務(wù)邏輯后,通過(guò)全局事務(wù)快照器將全局事務(wù)上下文發(fā)送至消息中間件,并通知第二事務(wù)管理器提交子事務(wù),在子事務(wù)提交成功后,再提交主事務(wù),并在主事務(wù)提交成功后,通過(guò)全局事務(wù)快照器通知消息中間件將全局事務(wù)上下文中的全局事務(wù)狀態(tài)更改為完成。這樣,在實(shí)現(xiàn)對(duì)分布式事務(wù)的控制的同時(shí),還保持了數(shù)據(jù)更新的一致性。
在一個(gè)可能的設(shè)計(jì)中,第一事務(wù)管理器在創(chuàng)建所述全局事務(wù)上下文之前,還判斷是否未開(kāi)啟全局事務(wù);在判斷出未開(kāi)啟全局事務(wù)后再創(chuàng)建包括全局事務(wù)id和全局事務(wù)狀態(tài)的全局事務(wù)上下文。這樣可以防止針對(duì)同一全局事務(wù)重復(fù)創(chuàng)建全局事務(wù)上下文。
在一個(gè)可能的設(shè)計(jì)中,第一事務(wù)管理器在判斷出未開(kāi)啟全局事務(wù)時(shí),還為所述第一服務(wù)發(fā)起的分布式事務(wù)分配主事務(wù)id。則創(chuàng)建的全局事務(wù)上下文還可包括所述主事務(wù)id。這樣可便于對(duì)跨進(jìn)程分布式事務(wù)進(jìn)行更好的控制。
在一個(gè)可能的設(shè)計(jì)中,所述第二事務(wù)管理器在使用子事務(wù)相關(guān)信息更新所述全局事務(wù)上下文之前,還判斷是否未開(kāi)啟全局事務(wù);在判斷出已開(kāi)啟全局事務(wù)后才使用子事務(wù)相關(guān)信息更新全局事務(wù)上下文。這樣,也可防止錯(cuò)誤更新全局事務(wù)上下文。
在一個(gè)可能的設(shè)計(jì)中,第一事務(wù)管理器或第二事務(wù)管理器在判斷是否未開(kāi)啟全局事務(wù)時(shí),可判斷是否存在全局事務(wù)上下文,若存在全局事務(wù)上下文,則判斷出已開(kāi)啟全局事務(wù),否則,判斷出未開(kāi)啟全局事務(wù)。這樣可進(jìn)一步精確判斷是否開(kāi)啟了全局事務(wù)。
在一個(gè)可能的設(shè)計(jì)中,在第二事務(wù)管理器提交子事務(wù)失敗后,所述第一事務(wù)管理器可放棄主事務(wù)的提交。這樣,可實(shí)現(xiàn)子事務(wù)提交失敗后,主事務(wù)也不提交。則各服務(wù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)也不會(huì)發(fā)生更新,從而仍可保證數(shù)據(jù)的一致性。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201610083820.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 跨進(jìn)程通信的方法和裝置
- 在鎖屏界面上展示信息的方法及裝置
- 金融網(wǎng)絡(luò)接入系統(tǒng)
- 基于安卓平臺(tái)的跨進(jìn)程通信方法和裝置
- 一種跨進(jìn)程數(shù)據(jù)的同步存取方法及系統(tǒng)
- 跨進(jìn)程發(fā)送打點(diǎn)日志的方法及裝置
- 基于安卓系統(tǒng)的跨進(jìn)程數(shù)據(jù)讀寫(xiě)方法、裝置及存儲(chǔ)介質(zhì)
- 一種全鏈路追蹤方法、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 跨進(jìn)程通信方法、終端以及計(jì)算機(jī)可讀介質(zhì)
- 一種基于AOP的跨進(jì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ì)





