CN114237994B 用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)(中國工商銀行股份有限公司)_第1頁
CN114237994B 用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)(中國工商銀行股份有限公司)_第2頁
CN114237994B 用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)(中國工商銀行股份有限公司)_第3頁
CN114237994B 用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)(中國工商銀行股份有限公司)_第4頁
CN114237994B 用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)(中國工商銀行股份有限公司)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

(19)國家知識產(chǎn)權(quán)局(12)發(fā)明專利(10)授權(quán)公告號CN114237994B(65)同一申請的已公布的文獻號審查員劉鳳嬌(73)專利權(quán)人中國工商銀行股份有限公司地址100140北京市西城區(qū)復興門內(nèi)大街55號(72)發(fā)明人王曉力周新衡翁少麗劉學明(74)專利代理機構(gòu)北京康信知識產(chǎn)權(quán)代理有限責任公司11240專利代理師黃海英用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)本發(fā)明公開了一種用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì),涉及金融科將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。本發(fā)明解決了相關(guān)技術(shù)中無法模擬子事務的補償操作早2發(fā)起交易服務;將所述交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中;注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,所述子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,所述補償操作是指由于發(fā)生故障導致交易服務異常所觸將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,包括:注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,實現(xiàn)所述補償模式中的子事務的執(zhí)行任務阻塞;在所述子事務執(zhí)行任務失敗或者超時的情況下,觸發(fā)子事務補償操作,調(diào)用子事務的補償操作早于正獲取攜帶有指定標簽的服務列表,其中,所述服務列表用于匹配所述交易服務,所述指定標簽用于匹配所述交易服務與空回滾測試操作的服務參數(shù);將所述服務列表推送至第一類服務器群組,其中,所述第一類服務器群組本地緩存所述服務列表。配置空回滾測試操作的服務參數(shù);推送所述服務參數(shù)至第一類服務器群組。4.根據(jù)權(quán)利要求3所述的測試方法,其特征在于,將所述交易服務引流至分布式異常?;谒鼋灰追?,匹配用于所述空回滾測試操作的服務參數(shù);在匹配成功的情況下,將所述交易服務引流至所述分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。5.根據(jù)權(quán)利要求4所述的測試方法,其特征在于,在基于所述交易服務未匹配成功所述空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。6.根據(jù)權(quán)利要求1至5中任意一項所述的測試方法,其特征在于,所述預設(shè)故障包括下7.一種用于分布式系統(tǒng)的測試系統(tǒng),其特征在于,所述測試系統(tǒng)至少包括:交易終端設(shè)所述交易終端設(shè)備,用于發(fā)起交易服務,并通過所述網(wǎng)關(guān)設(shè)備將所述交易服務發(fā)送至第一類服務器,所述第一類服務器群組中包含有多個所述第一類服務器;所述第一類服務器,將所述交易服務引流至所述分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中;所述分布式異常模擬器,注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,所述子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,所述補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作,在將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,包括:注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,實現(xiàn)所述補償模式中的子事3務的執(zhí)行任務阻塞;在所述子事務執(zhí)行任務失敗或者超時的情況下,觸發(fā)子事務補償操作,調(diào)用子事務的補償操作早于正向操作執(zhí)行,實現(xiàn)空回滾測試操作。8.根據(jù)權(quán)利要求7所述的測試系統(tǒng),其特征在于,所述分布式異常模擬器包括:服務容器,推送攜帶有指定標簽的服務列表至注冊單元,其中,所述服務列表用于匹配所述交易服務,所述指定標簽用于匹配所述交易服務與空回滾測試操作的服務參數(shù);故障注入模擬器,用于注入至少一個所述預設(shè)故障。第二類服務器群組,包括多個第二類服務器,每個所述第二類服務器用于提供網(wǎng)絡(luò)服務環(huán)境;其中,在基于所述交易服務未匹配成功所述空回滾測試操作的服務參數(shù)的情況下,調(diào)用所述第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)包括存儲的計算機程序,其中,在所述計算機程序運行時控制所述計算機可讀存儲介質(zhì)所在設(shè)備執(zhí)行權(quán)利要求1至6中任意一項所述的用于分布式系統(tǒng)的測試方法。11.一種電子設(shè)備,其特征在于,包括一個或多個處理器和存儲器,所述存儲器用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器實現(xiàn)權(quán)利要求1至6中任意一項所述的用于分布式系統(tǒng)的測試方法。4用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)技術(shù)領(lǐng)域[0001]本發(fā)明涉及金融科技領(lǐng)域,具體而言,涉及一種用于分布式系統(tǒng)的測試方法及系背景技術(shù)[0002]對于由多個應用組成的業(yè)務系統(tǒng)(例如,金融業(yè)務系統(tǒng)),具有系統(tǒng)復雜、交易鏈路長、交易量大且各應用之間頻繁交互的特征?;跇I(yè)務的需求,可能需要系統(tǒng)支持7*24小時客戶服務,交易在多個系統(tǒng)間運轉(zhuǎn),在各應用系統(tǒng)獨立運行,按照一定的順序彼此交互。但是,由于網(wǎng)絡(luò)堵塞、網(wǎng)絡(luò)抖動、數(shù)據(jù)庫鏈接異常、CPU使易失敗或超時,觸發(fā)補償(反向)操作,如果補償(反向)操作與正向操作同步運行或者早于正常操作完成,會引起交易運行順序異常。[0003]隨著計算機技術(shù)的發(fā)展,各系統(tǒng)間的耦合度進一步降低,系統(tǒng)之間越來越獨立,事務的參與者、支持事務的服務器、資源服務器以及事務管理器位于分布式系統(tǒng)的不同節(jié)點上(不同于主機系統(tǒng),全部的資源都集中在單機上)。對于一個長事務鏈,也就是一個大的操作劃分為一個主事務和N個子事務,每個小的子事務分布在不同節(jié)點上,屬于不同應用。分動,或數(shù)據(jù)庫鏈接異常等原因造成分布式事務某些子事務成功,某些子事務失敗或超時,從而觸發(fā)整個交易鏈接子事務補償,但此時可能某些超時的正向子事務由于網(wǎng)絡(luò)阻塞、資源等待等原因,子事務正向操作正在進行中,而補償?shù)姆聪虿僮饕呀?jīng)調(diào)起,從而造成反向操作早于正向操作執(zhí)行完畢,造成交易運行順序異常,從而引起整個交易處理失敗。[0004]相關(guān)技術(shù)中,正常測試環(huán)境很難模擬上述特殊的生產(chǎn)異常場景,從而使得測試準確度降低。[0005]針對上述的問題,目前尚未提出有效的解決發(fā)明內(nèi)容[0006]本發(fā)明實施例提供了一種用于分布式系統(tǒng)的測試方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì),以至少解決相關(guān)技術(shù)中無法模擬子事務的補償操作早于正向操作完成的網(wǎng)絡(luò)服務環(huán)境,從而導致測試準確性降低的技術(shù)問題。[0007]根據(jù)本發(fā)明實施例的一個方面,提供了一種用于分布式系統(tǒng)的測試方法,包括:發(fā)起交易服務;將所述交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中;注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,所述子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,所述補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0008]可選地,獲取攜帶有指定標簽的服務列表,其中,所述服務列表用于匹配所述交易服務,所述指定標簽用于匹配所述交易服務與空回滾測試操作的服務參數(shù);將所述服務列表推送至第一類服務器群組,其中,所述第一類服務器群組本地緩存所述服務列表。5[0009]可選地,配置空回滾測試操作的服務參數(shù);推送所述服務參數(shù)至第一類服務器群[0010]可選地,將所述交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,包括:基于所述交易服務,匹配用于所述空回滾測試操作的服務參數(shù);在匹配成功的情況下,將所述交易服務引流至所述分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。[0011]可選地,在基于所述交易服務未匹配成功所述空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。[0012]可選地,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,包括:注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,實現(xiàn)所述補償模式中的子事務的執(zhí)行任務阻塞;在所述子事務執(zhí)行任務失敗或者超時的情況下,觸發(fā)子事務補償操作,調(diào)用子事務的補償操作早于正向操作執(zhí)行,實現(xiàn)空回滾測試操作。[0014]根據(jù)本發(fā)明實施例的一個方面,提供了一種用于分布式系統(tǒng)的測試系統(tǒng),包括:所述測試系統(tǒng)至少包括:交易終端設(shè)備、網(wǎng)關(guān)設(shè)備、第一類服務器群組和分布式異常模擬器,其中,所述交易終端設(shè)備,用于發(fā)起交易服務,并通過所述網(wǎng)關(guān)設(shè)備將所述交易服務發(fā)送至第一類服務器,所述第一類服務器群組中包含有多個所述第一類服務器;所述第一類服務器,將所述交易服務引流至所述分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中;所述分布式異常模擬器,注入至少一個預設(shè)故障至所述網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,所述子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,所述補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0015]可選地,所述分布式異常模擬器包括:服務容器,推送攜帶有指定標簽的服務列表至注冊單元,其中,所述服務列表用于匹配所述交易服務,所述指定標簽用于匹配所述交易服務與空回滾測試操作的服務參數(shù);故障注入模擬器,用于注入至少一個所述預設(shè)故障。[0016]可選地,所述測試系統(tǒng)還包括:注冊單元,將服務列表推送至所述第一類服務器群組,其中,所述第一類服務器群組本地緩存所述服務列表;配置單元,配置用于所述空回滾測試操作的服務參數(shù),并推送所述服務參數(shù)至所述第一類服務器群組。[0017]可選地,所述測試系統(tǒng)還包括:第二類服務器群組,包括多個第二類服務器,每個所述第二類服務器用于提供網(wǎng)絡(luò)服務環(huán)境;其中,在基于所述交易服務未匹配成功所述空回滾測試操作的服務參數(shù)的情況下,調(diào)用所述第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。[0018]根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)包括存儲的計算機程序,其中,在所述計算機程序運行時控制所述計算機可讀存儲介質(zhì)所在設(shè)備執(zhí)行上述所述的用于分布式系統(tǒng)的測試方法。[0019]根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設(shè)備,包括一個或多個處理器和存儲器,所述存儲器用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器實現(xiàn)上述所述的用于分布式系統(tǒng)的測試方法。[0020]在本公開中,可以發(fā)起交易服務,將交易服務引流至分布式異常模擬器對應的網(wǎng)6絡(luò)服務環(huán)境中,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。在本申請中,引入了分布式異常模擬器,通過將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,可以模擬子事務的補償操作早于正向操作完成,造成交易運行順序進而解決了相關(guān)技術(shù)中無法模擬子事務的補償操作早于正向操作完成的網(wǎng)絡(luò)服務環(huán)境,從而導致測試準確性降低的技術(shù)問題。附圖說明[0021]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:[0022]圖1是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的測試方法的流程圖;[0023]圖2是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的測試系統(tǒng)的示意圖;[0024]圖3是根據(jù)本發(fā)明實施例的一種可選的分布式異常模擬器結(jié)構(gòu)的示意圖;[0025]圖4是根據(jù)本發(fā)明實施例的一種可選的SAGA補償模式流程的示意圖;[0026]圖5是根據(jù)本發(fā)明實施例的一種可選的主事務狀態(tài)流程的示意圖;[0027]圖6是根據(jù)本發(fā)明實施例的一種可選的事務狀態(tài)流程的示意圖;[0028]圖7是根據(jù)本發(fā)明實施例的一種可選的SAGA補償模式的空回滾流程的示意圖;[0029]圖8是根據(jù)本發(fā)明實施例的一種可選的解決空回滾測試場景的測試系統(tǒng)的示意[0030]|圖9是根據(jù)本發(fā)明實施例的一種可選的模擬空回滾測試場景的測試系統(tǒng)運行的流[0031]圖10是根據(jù)本發(fā)明實施例的一種用于分布式系統(tǒng)的測試方法的電子設(shè)備(或移動設(shè)備)的硬件結(jié)構(gòu)框圖。具體實施方式[0032]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范[0033]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。7[0034]為便于本領(lǐng)域技術(shù)人員理解本發(fā)明,下面對本發(fā)明各實施例中涉及的部分術(shù)語或名詞做出解釋:那就正常完成,如果某個步驟失敗,則根據(jù)相反順序一次調(diào)用補償操作。[0036]遠程服務調(diào)用(RemoteProcedureCall,RPC):是分布式服務框架的基礎(chǔ),是一種進程間通信方式,通過網(wǎng)絡(luò)從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。[0037]需要說明的是,本公開中的用于分布式系統(tǒng)的測試方法及其裝置可用于金融科技領(lǐng)域在測試分布式系統(tǒng)的情況下,也可用于除金融科技領(lǐng)域之外的任意領(lǐng)域在測試分布式系統(tǒng)的情況下,本公開中對用于分布式系統(tǒng)的測試方法及其裝置的應用領(lǐng)域不做限定。[0038]需要說明的是,本公開所涉及的用戶信息(包括但不限于用戶設(shè)備信息、用戶個人信息等)和數(shù)據(jù)(包括但不限于用于展示的數(shù)據(jù)、分析的數(shù)據(jù)等),均為經(jīng)用戶授權(quán)或者經(jīng)過各方充分授權(quán)的信息和數(shù)據(jù)。[0039]本發(fā)明下述各實施例可應用于各種分布式系統(tǒng)的測試場景中,例如,金融業(yè)務系統(tǒng)等,測試場景可以是模擬生產(chǎn)環(huán)境中由于網(wǎng)絡(luò)堵塞、網(wǎng)絡(luò)抖動或數(shù)據(jù)庫鏈接異常等原因造成分布式事務子事務的補償操作早于正向操作完成,造成交易運行順序異常的場景。本發(fā)明能夠快速模擬由于網(wǎng)絡(luò)堵塞、網(wǎng)絡(luò)抖動或數(shù)據(jù)庫鏈接異常等原因造成分布式事務子事務的補償操作早于正向操作完成,造成交易運行順序異常,從而引起整個交易處理失敗的式異常模擬器,通過參數(shù)引流需要空回滾測試的服務到分布式異常模擬器中,測試方法簡單快速,且與正常的測試環(huán)境和測試服務相隔離,對正常測試無影響,同時,程序內(nèi)容不需要任何修改,對程序無創(chuàng)傷,對正常的版本無任何影響。下面結(jié)合各個實施例來說明本發(fā)[0040]實施例一[0041]根據(jù)本發(fā)明實施例,提供了一種用于金融賬號的安全保障方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。[0042]圖1是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的測試方法的流程圖,如[0043]步驟S101,發(fā)起交易服務。[0044]步驟S102,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。[0045]步驟S103,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0046]通過上述步驟,可以發(fā)起交易服務,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對8應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。在本發(fā)明實施例中,引入了分布式異常模擬器,通過將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,可以模擬子事務的補償操作早于正向操作完成,造成交易運行順序異常的場景,能夠解決測試難題,提高測試的準確度,同時,也提高了測試人員的測試效率,進而解決了相關(guān)技術(shù)中無法模擬子事務的補償操作早于正向操作完成的網(wǎng)絡(luò)服務環(huán)境,從而導致測試準確性降低的技術(shù)問題。[0047]下面結(jié)合上述各步驟對本發(fā)明實施例進行詳細說明。[0048]步驟S101,發(fā)起交易服務。[0049]在本發(fā)明實施例中,可以通過交易終端設(shè)備發(fā)起交易服務,其中,交易終端設(shè)備可交易結(jié)果的輸出進行展示,承擔發(fā)起交易角色(即用于發(fā)起交易服務,并通過網(wǎng)關(guān)設(shè)備將交易服務發(fā)送至第一類服務器(即消費者服務器)),而網(wǎng)關(guān)設(shè)備是一種協(xié)議轉(zhuǎn)換器,可以促進不同協(xié)議之間的兼容性,轉(zhuǎn)換不同交易終端產(chǎn)生的交易數(shù)據(jù)為統(tǒng)一的標識格式,方便后續(xù)統(tǒng)一處理。[0050]步驟S102,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。[0051]在本發(fā)明實施例中,在交易終端設(shè)備發(fā)起交易服務時,可以通過網(wǎng)關(guān)設(shè)備將交易服務發(fā)送至第一類服務器,第一類服務器群組中包含有多個第一類服務器,之后可以通過第一類服務器將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,其中,第一類服務器群組(即消費者服務器群組,本實施例以第一類服務器群組進行示意性說明,包含有多個第一類服務器(即消費者服務器))是分布式系統(tǒng)的消費者(CONSUMER)群組,主要功能如,獲取需要空回滾測試的服務參數(shù),在收到DSF(分布式服務框架)路由器路由的服務后,匹配空回滾測試的服務參數(shù),如果匹配不上空回滾測試服務參數(shù),則根據(jù)規(guī)則調(diào)用生產(chǎn)者服務器群組中對應的服務,如果匹配上,則根據(jù)規(guī)則調(diào)用分布式異常模擬器中對應的服務(即將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中),其中,網(wǎng)絡(luò)服務環(huán)境是通過分布式異常模擬器模擬出的生產(chǎn)環(huán)境,該生產(chǎn)環(huán)境是生產(chǎn)者服務器群組實現(xiàn)的。[0052]可選的,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,包括:基于交易服務,匹配用于空回滾測試操作的服務參數(shù);在匹配成功的情況下,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。[0053]在本發(fā)明實施例中,消費者服務器群組在收到DSF路由器路由的服務(即交易服務)后,匹配空回滾測試操作的服務參數(shù),如果匹配不上空回滾測試服務參數(shù),則根據(jù)規(guī)則調(diào)用生產(chǎn)者服務器群組中對應的服務,如果匹配上,則根據(jù)規(guī)則調(diào)用分布式異常模擬器中對應的服務(即匹配成功的情況下,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中),其中,DSF路由器用于接收通用網(wǎng)關(guān)上送的報文服務,通過路由配置,報服務路由到消費者服務器群組。[0054]可選的,在基于交易服務未匹配成功空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。[0055]在本發(fā)明實施例中,第二類服務器群組(即生產(chǎn)者服務器群組,包括多個第二類服務器,每個第二類服務器用于提供網(wǎng)絡(luò)服務環(huán)境)為分布式系統(tǒng)的生產(chǎn)者群組,主要功能為9推送服務列表給注冊中心,便于服務被發(fā)現(xiàn)和提供服務具體功能,并且,在基于交易服務未匹配成功空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境(即與該服務參數(shù)相對應的網(wǎng)絡(luò)服務環(huán)境(即相應的服務))。[0056]步驟S103,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0057]在本發(fā)明實施例中,可以通過分布式異常模擬器注入至少一個預設(shè)故障至網(wǎng)絡(luò)服送帶有特殊標簽的服務列表給注冊中心,便于服務被發(fā)現(xiàn)和提供服務具體功能;(2)故障注入功能,可以注入網(wǎng)絡(luò)故障,CPU故障,緩存故障,磁盤故障等(即某一預設(shè)故障),模擬對應的故障場景(即注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境),將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式(例如,SAGA補償模式)所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0058]可選的,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,包括:注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,實現(xiàn)補償模式中的子事務的執(zhí)行任務阻塞;在子事務執(zhí)行任務失敗或者超時的情況下,觸發(fā)子事務補償操作,調(diào)用子事務的補償操作早于正[0060]在本發(fā)明實施例中,通過分布式異常模擬器中故障注入模塊注入故障(即注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,預設(shè)故障包括但不限于:網(wǎng)絡(luò)磁盤故障等),可以實現(xiàn)生產(chǎn)環(huán)境對應的網(wǎng)絡(luò)堵塞、網(wǎng)絡(luò)抖動、數(shù)據(jù)庫鏈接異常、CPU使用異常或磁盤故障等故障重現(xiàn)(即實現(xiàn)補償模式中的子事務的執(zhí)行任務阻塞),導致子事務處理超時,任何一個子事務失敗或者超時(即在子事務執(zhí)行任務失敗或者超時的情況下),觸發(fā)子事務補償操作,從而引起子事務補償(反向)操作早于正向操作完成,實現(xiàn)空回滾測試場景(即調(diào)用子事務的補償操作早于正向操作執(zhí)行,實現(xiàn)空回滾測試操作)。[0061]可選的,獲取攜帶有指定標簽的服務列表,其中,服務列表用于匹配交易服務,指定標簽用于匹配交易服務與空回滾測試操作的服務參數(shù);將服務列表推送至第一類服務器[0062]可選的,測試方法還包括:配置空回滾測試操作的服務參數(shù);推送服務參數(shù)至第一類服務器群組。[0063]在本發(fā)明實施例中,可以通過分布式異常模擬器中的服務容器推送攜帶有指定標簽的服務列表至注冊單元,便于服務被發(fā)現(xiàn)和提供服務具體功能,其中,指定標簽用于匹配交易服務與空回滾測試操作的服務參數(shù),服務列表用于匹配交易服務,之后,通過注冊單元將服務列表推送至第一類服務器群組,其中,第一類服務器群組本地緩存服務列表。[0064]本發(fā)明實施例,根據(jù)分布式事務系統(tǒng)要保障N個子事務,要么一起成功,要么一起失敗特性,快速模擬網(wǎng)絡(luò)堵塞,網(wǎng)絡(luò)抖動,或數(shù)據(jù)庫鏈接異常等原因造成分布式事務子事務的補償操作早于正向操作完成,造成交易運行順序異常,從而引起整個交易處理失敗的技術(shù)場景,及時準確實現(xiàn)補償模式的空回滾操作。在本實施例中,通過將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,可以模擬子事務的補償操作早于正向操作完成,造成交易運行順序異常的場景,能夠解決測試難題,提高測試的準確度,同時,也提高了測試人員的測試效率。[0066]圖2是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的測試系統(tǒng)的示意圖,如圖2所示,測試系統(tǒng)至少包括:交易終端設(shè)備、網(wǎng)關(guān)設(shè)備、第一類服務器群組和分布式異常模擬器,其中,交易終端設(shè)備,用于發(fā)起交易服務,并通過網(wǎng)關(guān)設(shè)備將交易服務發(fā)送至第一類服務器,第一類服務器群組中包含有多個第一類服務器;第一類服務器,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中;分布式異常模擬器,注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,其中,子事務是指分布式系統(tǒng)所使用的預設(shè)補償模式所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。備,用于對各類交易的發(fā)起數(shù)據(jù)進行輸入、各類交易結(jié)果的輸出進行展示,承擔發(fā)起交易角色(即用于發(fā)起交易服務,并通過網(wǎng)關(guān)設(shè)備將交易服務發(fā)送至第一類服務器(即消費者服務器));[0068]通用網(wǎng)關(guān)(即網(wǎng)關(guān)設(shè)備):是一種協(xié)議轉(zhuǎn)換器,可以促進不同協(xié)議之間的兼容性,轉(zhuǎn)換不同交易終端產(chǎn)生的交易數(shù)據(jù)為統(tǒng)一的標識格式,方便后續(xù)統(tǒng)一處理;[0069]消費者服務器群組(本實施例是指第一類服務器群組,包含有多個第一類服務器(即消費者服務器)):是分布式系統(tǒng)的消費者(CONSUMER)群組,主要功能為訂閱服務列表,滾測試的服務參數(shù),在收到DSF(分布式服務框架)路由器路由的服務后,匹配空回滾測試的服務參數(shù),如果匹配不上空回滾測試服務參數(shù),則根據(jù)規(guī)則調(diào)用生產(chǎn)者服務器群組中對應的服務,如果匹配上,則根據(jù)規(guī)則調(diào)用分布式異常模擬器中對應的服務(即將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中),其中,網(wǎng)絡(luò)服務環(huán)境是通過分布式異常模擬器模擬出的生產(chǎn)環(huán)境,該生產(chǎn)環(huán)境是生產(chǎn)者服務器群組實現(xiàn)的;[0070]分布式異常模擬器主要包含兩部分功能:(1)包含生產(chǎn)者(PROVIDER)功能,推送帶有特殊標簽的服務列表給注冊中心,便于服務被發(fā)現(xiàn)和提供服務具體功能;(2)故障注入功能,可以注入網(wǎng)絡(luò)故障,CPU故障,緩存故障,磁盤故障等(即某一預設(shè)故障),模擬障場景(即注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境),將子事務的補償操作早于正向操作完補償模式)所對應的分布式長事務鏈中某一子事務,補償操作是指由于發(fā)生故障導致交易服務異常所觸發(fā)的操作。[0071]可選的,分布式異常模擬器包括:服務容器,推送攜帶有指定標簽的服務列表至注冊單元,其中,服務列表用于匹配交易服務,指定標簽用于匹配交易服務與空回滾測試操作的服務參數(shù);故障注入模擬器,用于注入至少一個預設(shè)[0072]可選的,分布式異常模擬器注入的預設(shè)故障包括下述至少之一:網(wǎng)絡(luò)故障、CPU故11[0073]在本發(fā)明實施例中,圖3是根據(jù)本發(fā)明實施例的一種可選的分布式異常模擬器結(jié)[0074]服務容器:具有服務1到服務N,可以實現(xiàn)生產(chǎn)者功能,推送帶有特殊標簽(即指定標簽,用于實現(xiàn)交易服務與空回滾測試操作的服務參數(shù)匹配上)的服務列表(用于匹配交易服務)給注冊中心,便于服務被發(fā)現(xiàn)和提供服務具體功能;[0075]故障注入模擬器,可以注入網(wǎng)絡(luò)故障,CPU故障,緩存故障,磁盤故障等(即某一個預設(shè)故障),模擬對應的故障場景。第一類服務器群組本地緩存服務列表;配置單元,配置用于空回滾測試操作的服務參數(shù),并推送服務參數(shù)至第一類服務器群組。[0077]在本發(fā)明實施例中,測試系統(tǒng)還包括:注冊單元,用于接收消費者服務器群組(即第一類服務器群組)、生產(chǎn)者服務器群組、分布式異常模擬器的注冊功能,并且定時向消費者服務器群組、生產(chǎn)者服務器群組、分布式異常模擬器推送服務路由等信息(即將服務列表推送至第一類服務器群組),實現(xiàn)服務發(fā)布和服務訂閱功能,其中,第一類服務器群組本地緩存服務列表。[0078]測試系統(tǒng)還包括:配置單元(即配置中心):用于集中化管理不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r推送給消費者服務器群組,并且具備規(guī)范的權(quán)限、流程治理等特性,例如,配置空回滾測試操作的服務參數(shù),并推送服務[0079]可選的,測試系統(tǒng)還包括:第二類服務器群組,包括多個第二類服務器,每個第二類服務器用于提供網(wǎng)絡(luò)服務環(huán)境;其中,在基于交易服務未匹配成功空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境。[0080]在本發(fā)明實施例中,測試系統(tǒng)還包括:第二類服務器群組(即生產(chǎn)者服務器群組,包括多個第二類服務器,每個第二類服務器用于提供網(wǎng)絡(luò)服務環(huán)境):分布式系統(tǒng)的生產(chǎn)者群組,主要功能為推送服務列表給注冊中心,便于服務被發(fā)現(xiàn)和提供服務具體功能,并且,在基于交易服務未匹配成功空回滾測試操作的服務參數(shù)的情況下,調(diào)用第二類服務器群組中的預設(shè)網(wǎng)絡(luò)服務環(huán)境(即與該服務參數(shù)相對應的網(wǎng)絡(luò)服務環(huán)境(即相應的服務))。[0081]在本發(fā)明實施例中,測試系統(tǒng)還包括:DSF路由器,用于接收通用網(wǎng)關(guān)上送的報文[0082]可選的,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中,包括:基于交易服務,匹配空回滾測試操作的服務參數(shù);在匹配成功的情況下,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中。[0083]在本發(fā)明實施例中,消費者服務器群組在收到DSF路由器路由的服務(即交易服務)后,匹配空回滾測試操作的服務參數(shù),如果匹配不上空回滾測試服務參數(shù),則根據(jù)規(guī)則調(diào)用生產(chǎn)者服務器群組中對應的服務,如果匹配上,則根據(jù)規(guī)則調(diào)用分布式異常模擬器中對應的服務(即匹配成功的情況下,將交易服務引流至分布式異常模擬器對應的網(wǎng)絡(luò)服務環(huán)境中)。[0084]可選的,將子事務的補償操作早于正向操作完成,實現(xiàn)空回滾測試操作,包括:通過注入至少一個預設(shè)故障至網(wǎng)絡(luò)服務環(huán)境,實現(xiàn)補償模式中的子事務的執(zhí)行任務阻塞;在子事務執(zhí)行任務失敗或者超時的情況下,觸發(fā)子事務補償操作,調(diào)用子事務的補償操作早CN114237994B[0091](6)若主事務方法執(zhí)行失敗(即某一子事務執(zhí)行失敗或者主事務其他方法拋出異[0092]圖4是根據(jù)本發(fā)明實施例的一種可選的SAGA補償模式流程的示意圖,如圖4所示,事務可以向子事務A發(fā)起調(diào)用請求,子事務A在預處理后(即調(diào)用事務管理器記錄A事務開(即某一子事務執(zhí)行失敗或者主事務其他方法拋出異常)后,則進入補償切面中的捕捉方(COMPENSATE),觸發(fā)子事務補償操作,所有子事務補償操作成功,則主事務補償成功(COMPENSATE_SUCCESS);(4)任何一個子事務補償操作失敗,則主事務補償失敗CN114237994B說明書10/12頁事務執(zhí)行失敗(START_FAILED),則返回通知主事務交易失敗,子事務執(zhí)行超時(START_務失敗或者超時(即在子事務執(zhí)行任務失敗或者超時的情況下),主事務超時失敗,進入補操作阻塞中,故子事務的反向操作早于正向操作執(zhí)行(即反向操作成功),從而實現(xiàn)空回滾操作(即SAGA補償模式的空回滾結(jié)束),執(zhí)行結(jié)束后返回空回滾成功(即調(diào)用子事務的補償[0096]圖8是根據(jù)本發(fā)明實施例的一種可選的解決空回滾測試場景的測試系統(tǒng)的示意圖,如圖8所示,包括:交易終端設(shè)備(圖8示意了三個終端設(shè)備:柜面、手機設(shè)備、POS)、通用組;消費者服務器群組中容器重啟時獲取注冊中心服務列試環(huán)境和測試服務相隔離,對正常測試無影響,并且程序內(nèi)容不需要任何修改,對程序無創(chuàng)傷,對正常的版本無任何影響。[0100]圖9是根據(jù)本發(fā)明實施例的一種可選的模擬空回滾測試場景的測試系統(tǒng)運行的流[0101]步驟S100:分布式異常模擬器啟動時推送帶有特殊標簽的服務列表給注冊中心。[0102]步驟S200:注冊中心推送服務列表給消費者服務器群組。[0103]步驟S300:消費者服務器群組本地緩存服務列表。[0104]步驟S400:配置中心配置需要空回滾測試的服務參數(shù),配置中心實時推送參數(shù)給消費者服務器群組。[0105]步驟S500:分布式異常模擬器中故障注入模塊注入故障。[0106]步驟S600:交易終端設(shè)備發(fā)起交易。[0107]步驟S700:交易通過通用網(wǎng)關(guān)、DSF路由器到達消費者服務器。[0108]步驟S800:消費者服務匹配空回滾測試服務參數(shù),匹配上,則把交易引流到分布式異常模擬器。[0109]步驟S900:分布式異常模擬器上通過故障模擬,實現(xiàn)子事務補償(反向)操作早于正向操作完成,實現(xiàn)空回滾操作。[0110]本發(fā)明實施例,能夠快速模擬網(wǎng)絡(luò)堵塞,網(wǎng)絡(luò)抖動,或數(shù)據(jù)庫鏈接異常等原因造成分布式事務子事務的補償操作早于正向操作到達,造成交易運行順序異常,從而引起整個交易處理失敗的技術(shù)場景,及時準確實現(xiàn)補償模式的空回滾操作,解決了測試難題,提高了測試準確度,同時也提高了測試人員的測試效率。本發(fā)明實施例,通過參數(shù)引流需要空回滾測試的服務到分布式異常模擬器中,測試方法簡單快速,且與正常的測試環(huán)境和測試服務無任何影響。[0111]根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設(shè)備,包括一個或多個處理器和存儲器,存儲器用于存儲一個或多個程序,其中,當一個或多個程序被一個或多個處理器執(zhí)行時,使得一個或多個處理器實現(xiàn)上述任意一項的用于分布式系統(tǒng)的測試方法。[0112]圖10是根據(jù)本發(fā)明實施例的一種用于分布式系統(tǒng)的測試方法的電子設(shè)備(或移動設(shè)備)的硬件結(jié)構(gòu)框圖。如圖10所示,電子設(shè)備可以包括一個或多個(圖中采用102a、102b,……,102n來示出)處理器102(處理器102可以包括但不限于微處理器MCU或可編程邏入/輸出接口(I/0接口)、通用串行總線(USB)端口(可以作為I/0接口的端口中的一個端口僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,電子設(shè)備還可包括比圖10中所示更多或者更少的組件,或者具有與圖10所示不同的配置。[0113]根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)包括存儲的計算機程序,其中,在計算機程序運行時控制計算機可讀存儲介質(zhì)所在設(shè)備執(zhí)行上述任意一項的用于分布式系統(tǒng)的測試方法。[0114]上述本發(fā)明實施例序號

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論