The present invention provides a distributed transaction processing method, which belongs to the technical field of transaction processing, in the invention, the distributed transaction is split, split into several sub transactions, to ensure that the first sub transaction for a local transaction, before the implementation of second sub transactions, the first message sent by the cloth to the message middleware, message middleware to other participants the node of the push message, so that the node performs a local transaction, if the node's local transaction fails, the request message sent again to perform a local transaction middleware message until the node of the transaction is successfully implemented, so as to achieve the ultimate data consistency. In order to eliminate duplicate messages, the message application state table is created locally, and the execution of the message is recorded.
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及事務(wù)處理
,尤其涉及一種分布式事務(wù)處理方法。
技術(shù)介紹
在基于分布式服務(wù)框架實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)開發(fā)時(shí),一種是通過(guò)業(yè)務(wù)功能合并,避免使用分布式事務(wù),另一種采用兩段式提交。合并業(yè)務(wù)功能避免分布式事務(wù),導(dǎo)致業(yè)務(wù)模塊之間的耦合性增強(qiáng),不易于擴(kuò)展和維護(hù),而采用兩段式提交需要數(shù)據(jù)庫(kù)支持分布式事務(wù),數(shù)據(jù)庫(kù)ACID特性以損害系統(tǒng)的可用性、性能與可伸縮性為代價(jià)。只有在參與分布式事務(wù)的每個(gè)數(shù)據(jù)庫(kù)實(shí)例都操作成功的情況下,分布式事務(wù)才能成功,只要有一個(gè)數(shù)據(jù)庫(kù)實(shí)例操作失敗,整個(gè)事務(wù)就不能完成。系統(tǒng)的可用性等于參與分布式事務(wù)的各實(shí)例的可用性的乘積,實(shí)例越多,系統(tǒng)的可用性越低。從性能角度看,事務(wù)的總持續(xù)時(shí)間通常是各實(shí)例操作時(shí)間之和,因?yàn)樵谝粋€(gè)事務(wù)中的各操作通常是順序執(zhí)行的,這樣事務(wù)的響應(yīng)時(shí)間就會(huì)增加很多。由于事務(wù)持續(xù)時(shí)間的增加,事務(wù)對(duì)相關(guān)資源的鎖定時(shí)間也相應(yīng)增加,從而增加可對(duì)臨界資源的訪問(wèn)沖突,進(jìn)而影響到系統(tǒng)吞吐率和可伸縮性。
技術(shù)實(shí)現(xiàn)思路
為了解決現(xiàn)有技術(shù)中的技術(shù)問(wèn)題,本專利技術(shù)提出了一種分布式事務(wù)處理方法,能夠?qū)崿F(xiàn)事務(wù)的最終一致性,提高分布式事務(wù)的可用性和可伸縮性。在本專利技術(shù)中,將分布式事務(wù)進(jìn)行拆分,拆分為多個(gè)子事務(wù),保證第一個(gè)子事務(wù)為本地事務(wù),在執(zhí)行第二個(gè)子事務(wù)之前,先將消息發(fā)布到消息中間件,再由消息中間件向其他參與事務(wù)的節(jié)點(diǎn)推送消息,以使該節(jié)點(diǎn)執(zhí)行本地事務(wù),若該節(jié)點(diǎn)的本地事務(wù)執(zhí)行失敗,則請(qǐng)求消息中間件再次發(fā)送執(zhí)行本地事務(wù)的消息,直到該節(jié)點(diǎn)的本地事務(wù)執(zhí)行成功,從而達(dá)到數(shù)據(jù)的最終一致性。為了消除重復(fù)消息,在本地創(chuàng)建消息應(yīng)用狀態(tài)表,記錄消息執(zhí)行情況,避免重復(fù)執(zhí)行,保證操 ...
【技術(shù)保護(hù)點(diǎn)】
一種分布式事務(wù)處理方法,其特征在于,將分布式事務(wù)進(jìn)行拆分,拆分為數(shù)個(gè)子事務(wù),保證第一個(gè)子事務(wù)為本地事務(wù),在執(zhí)行第二個(gè)子事務(wù)之前,先將消息發(fā)布到消息中間件,再由消息中間件向其他參與事務(wù)的節(jié)點(diǎn)推送消息,以使該節(jié)點(diǎn)執(zhí)行本地事務(wù),若該節(jié)點(diǎn)的本地事務(wù)執(zhí)行失敗,則請(qǐng)求消息中間件再次發(fā)送執(zhí)行本地事務(wù)的消息,直到該節(jié)點(diǎn)的本地事務(wù)執(zhí)行成功,從而達(dá)到數(shù)據(jù)的最終一致性。
【技術(shù)特征摘要】
1.一種分布式事務(wù)處理方法,其特征在于,將分布式事務(wù)進(jìn)行拆分,拆分為數(shù)個(gè)子事務(wù),保證第一個(gè)子事務(wù)為本地事務(wù),在執(zhí)行第二個(gè)子事務(wù)之前,先將消息發(fā)布到消息中間件,再由消息中間件向其他參與事務(wù)的節(jié)點(diǎn)推送消息,以使該節(jié)點(diǎn)執(zhí)行本地事務(wù),若該節(jié)點(diǎn)的本地事務(wù)執(zhí)行失敗,則請(qǐng)求消息中間件再次發(fā)送執(zhí)行本地事務(wù)的消息,直到該節(jié)點(diǎn)的本地事務(wù)執(zhí)行成功,從而達(dá)到數(shù)據(jù)的最終一致性。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,為了消除重復(fù)消息,在本地創(chuàng)建消息應(yīng)用狀態(tài)表,記錄消息執(zhí)行情況。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,具體包括:步驟1:將分布式事務(wù)進(jìn)行拆分,拆分為數(shù)個(gè)子事務(wù),使子事務(wù)就有本地事務(wù)特性;步驟...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:玄德,
申請(qǐng)(專利權(quán))人:浪潮軟件股份有限公司,
類型:發(fā)明
國(guó)別省市:山東;37
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。