本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種用于分布式系統(tǒng)的異常處理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)用戶的數(shù)量也隨著時間成指數(shù)倍的增長。并且,從瀏覽新聞到網(wǎng)上購物,互聯(lián)網(wǎng)也被賦予了越來越多的功能。為了在原有第一業(yè)務(wù)系統(tǒng)中添加這些拓展功能,可以對原有第一業(yè)務(wù)系統(tǒng)進行擴充,通過直接增加新的功能模塊的方式實現(xiàn)。但是,利用上述方法會使得原有第一業(yè)務(wù)系統(tǒng)的系統(tǒng)體積越來越大,從而導(dǎo)致系統(tǒng)運行緩慢,且不利于后期維護。
因此,在現(xiàn)有技術(shù)中,通常利用分布式處理技術(shù),通過在原有第一業(yè)務(wù)系統(tǒng)的基礎(chǔ)上,添加與其相互依賴的相關(guān)第二業(yè)務(wù)系統(tǒng)來實現(xiàn)。但是,如果這些相關(guān)的第二業(yè)務(wù)系統(tǒng)如果發(fā)生故障,通常會間接影響到原有第一業(yè)務(wù)系統(tǒng)的正常運行。在嚴重的情況下,還可能拖垮原有第一業(yè)務(wù)系統(tǒng),使其無法提供正常服務(wù)。
為了保證原有第一業(yè)務(wù)系統(tǒng)的正常運行,通常是采用配置超時參數(shù)、手動降級(手動切斷系統(tǒng)間的依賴關(guān)系)或擴容等方法來應(yīng)對。其中,采用配置超時參數(shù)的方法,無法應(yīng)對所有異常場景,并且在存在大量超時的情況時也會降低原有系統(tǒng)的性能,影響原有系統(tǒng)正常提供基礎(chǔ)服務(wù)。采用手動降級的方法,往往并不能做到及時干預(yù),一旦運維人員在發(fā)生故障時不在現(xiàn)場問題將得不到及時處理,因此為了保證故障的及時解決,需要投入大量運維人力,維護成本偏高。而采用擴容的方法不能急時解決問題,而且需要預(yù)先對人力與硬件進行投入,維護成本過高。
針對現(xiàn)有技術(shù)中,由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系統(tǒng)運行異常的技術(shù)問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種用于分布式系統(tǒng)的異常處理方法、裝置及系統(tǒng),以至少解決了由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系 統(tǒng)運行異常的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種用于分布式系統(tǒng)的異常處理方法,分布式系統(tǒng)中,至少包括第一業(yè)務(wù)系統(tǒng)和第二業(yè)務(wù)系統(tǒng),第一業(yè)務(wù)系統(tǒng)與第二業(yè)務(wù)系統(tǒng)具有依賴關(guān)系,其中,包括:獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù);根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常;當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種用于分布式系統(tǒng)的異常處理裝置,分布式系統(tǒng)中,至少包括第一業(yè)務(wù)系統(tǒng)和第二業(yè)務(wù)系統(tǒng),第一業(yè)務(wù)系統(tǒng)與第二業(yè)務(wù)系統(tǒng)具有依賴關(guān)系,其中,裝置包括:第一獲取模塊,用于獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù);判斷模塊,用于根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常;第一確定模塊,用于當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);第一處理模塊,用于將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種用于分布式系統(tǒng)的異常處理系統(tǒng),包括:第一業(yè)務(wù)系統(tǒng),根據(jù)接收的業(yè)務(wù)請求,向第二業(yè)務(wù)系統(tǒng)發(fā)送調(diào)用請求;第二業(yè)務(wù)系統(tǒng),與第一業(yè)務(wù)系統(tǒng)連接,用于處理第一業(yè)務(wù)系統(tǒng)發(fā)送的調(diào)用請求;異常處理模塊,分別與第一業(yè)務(wù)系統(tǒng)和第二業(yè)務(wù)系統(tǒng)連接,用于獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù);根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常;當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理。
在本發(fā)明實施例中,采用獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù);根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常;當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理的方式,達到了在第二業(yè)務(wù)系統(tǒng)出現(xiàn)調(diào)用異常時系統(tǒng)自動進行異常處理的目的,從而實現(xiàn)了在不增加硬件成本和維護成本的情況下,及時對于第二業(yè)務(wù)系統(tǒng)出現(xiàn)的異常進行處理的技術(shù)效果,進而解決了由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系統(tǒng)運行異常的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的一種用于分布式系統(tǒng)的異常處理方法的計算機終端的硬件結(jié)構(gòu)框圖;
圖2是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理方法的交互示意圖;
圖4是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理裝置的示意圖;
圖5是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理裝置的示意圖;
圖6是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理裝置的示意圖;
圖7是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理裝置的示意圖;
圖8是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理裝置的示意圖;以及
圖9是根據(jù)本發(fā)明實施例的一種可選的用于分布式系統(tǒng)的異常處理系統(tǒng)的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實施例1
根據(jù)本發(fā)明實施例,還提供了一種用于分布式系統(tǒng)的異常處理方法的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請實施例一所提供的方法實施例可以在移動終端、計算機終端或者類似的運算裝置中執(zhí)行。以運行在計算機終端上為例,圖1是本發(fā)明實施例的一種用于分布式系統(tǒng)的異常處理方法的計算機終端的硬件結(jié)構(gòu)框圖。如圖1所示,計算機終端10可以包括一個或多個(圖中僅示出一個)處理器102(處理器102可以包括但不限于微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用于存儲數(shù)據(jù)的存儲器104、以及用于通信功能的傳輸模塊106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計算機終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲器104可用于存儲應(yīng)用軟件的軟件程序以及模塊,如本發(fā)明實施例中的用于分布式系統(tǒng)的異常處理方法對應(yīng)的程序指令/模塊,處理器102通過運行存儲在存儲器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的應(yīng)用程序的漏洞檢測方法。存儲器104可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器104可進一步包括相對于處理器102遠程設(shè)置的存儲器,這些遠程存儲器可以通過網(wǎng)絡(luò)連接至計算機終端10。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實例可包括計算機終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個實例中,傳輸裝置106包括一個網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進行通訊。在一個實例中,傳輸裝置106可以為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。
在上述運行環(huán)境下,本申請?zhí)峁┝巳鐖D2所示的用于分布式系統(tǒng)的異常處理方法。圖2是根據(jù)本發(fā)明實施例一的用于分布式系統(tǒng)的異常處理方法的流程圖。
如圖2所示,在上述分布式系統(tǒng)中,至少包括第一業(yè)務(wù)系統(tǒng)和第二業(yè)務(wù)系統(tǒng),第一業(yè)務(wù)系統(tǒng)與第二業(yè)務(wù)系統(tǒng)具有依賴關(guān)系,其中,該方法包括:
步驟s22,獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù)。
通過上述步驟s22,對第一業(yè)務(wù)系統(tǒng)在調(diào)用第二業(yè)務(wù)系統(tǒng)時的參數(shù)進行獲取,參數(shù)與第二業(yè)務(wù)系統(tǒng)相對應(yīng)。其中,參數(shù)用于記錄第二業(yè)務(wù)系統(tǒng)對第一業(yè)務(wù)系統(tǒng)發(fā)送的調(diào)用請求進行響應(yīng)的參數(shù)。
步驟s24,根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常。
通過上述步驟s24,根據(jù)參數(shù)判斷第二業(yè)務(wù)系統(tǒng)是否為調(diào)用異常。其中,當(dāng)參數(shù)為用于記錄在第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時,第二業(yè)務(wù)系統(tǒng)對第一業(yè)務(wù)系統(tǒng)發(fā)送的調(diào)用請求的響應(yīng)時間,此時,可以將響應(yīng)時間與預(yù)先設(shè)置的時間閾值進行比對,當(dāng)響應(yīng)時間大于時間閾值時,即可判斷為調(diào)用異常。參數(shù)也可以為用于記錄第一業(yè)務(wù)系統(tǒng)在調(diào)用第二業(yè)務(wù)系統(tǒng)后,第二業(yè)務(wù)系統(tǒng)返回的異常代碼,當(dāng)接收到異常代碼時,即可判定為調(diào)用異常。當(dāng)然,參數(shù)還可以用于記錄其他參數(shù)第二業(yè)務(wù)系統(tǒng)對第一業(yè)務(wù)系統(tǒng)發(fā)送的調(diào)用請求進行響應(yīng)的參數(shù),此處不做具體限定。
步驟s26,當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù)。
通過上述步驟s26,在第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用,并發(fā)生調(diào)用異常時,對調(diào)用異常發(fā)生的時間和發(fā)生調(diào)用異常的異常次數(shù)進行記錄。并確定在預(yù)設(shè)時間區(qū)間內(nèi),發(fā)生調(diào)異常的異常次數(shù)。在實際應(yīng)用當(dāng)中,時間區(qū)間可以根據(jù)實際需求確定,其中,時間區(qū)間的長短可以根據(jù)對與第二業(yè)務(wù)系統(tǒng)進行調(diào)用的頻繁程度進行確定。例如,1分鐘、3分鐘或5分鐘等。
步驟s28,將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理。
通過上述步驟s28,將調(diào)用異常發(fā)生的異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)調(diào)用異常發(fā)生的異常次數(shù)超過預(yù)先設(shè)置的閾值時,則判定與異常次數(shù)對應(yīng)的第二業(yè)務(wù)系統(tǒng)運行出現(xiàn)異常。此時,可以通過對該第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理,從而切斷第一業(yè)務(wù)系統(tǒng)與該第二業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,從而停止第一業(yè)務(wù)系統(tǒng)對該第二業(yè)務(wù)系統(tǒng)的調(diào)用。
具體的,第一業(yè)務(wù)系統(tǒng)通常為用于實現(xiàn)系統(tǒng)核心功能的核心業(yè)務(wù)系統(tǒng),而第二業(yè)務(wù)系統(tǒng)通常為與第一業(yè)務(wù)系統(tǒng)具有依賴關(guān)系的非核心業(yè)務(wù)系統(tǒng),第一業(yè)務(wù)系統(tǒng)通過調(diào)用第二業(yè)務(wù)系統(tǒng)來實現(xiàn)某些特定的非核心功能。因此,在上述步驟s22至步驟s28中,通過獲取第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用的過程中,生成的參數(shù),來判斷第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)的調(diào)用是否存在異常。當(dāng)調(diào)用出現(xiàn)異常時,對發(fā)生調(diào)用異常的第二業(yè)務(wù)系統(tǒng),在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生的調(diào)用異常的異常次數(shù)進行記錄。當(dāng)在時間 區(qū)間內(nèi)第二業(yè)務(wù)系統(tǒng)發(fā)生調(diào)用異常的次數(shù)超過預(yù)先設(shè)置的閾值,即異常上限時,對該第二業(yè)務(wù)系統(tǒng)進行降級處理。通過上述步驟,即可以達到在第二業(yè)務(wù)系統(tǒng)出現(xiàn)調(diào)用異常時系統(tǒng)自動進行異常處理的目的,從而實現(xiàn)了在不增加硬件成本和維護成本的情況下,及時對于第二業(yè)務(wù)系統(tǒng)出現(xiàn)的異常進行處理的技術(shù)效果,進而解決了由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系統(tǒng)運行異常的技術(shù)問題。
當(dāng)然,在上述實施例中的第一業(yè)務(wù)系統(tǒng),也可以是在系統(tǒng)中用于提供核心業(yè)務(wù)服務(wù)的核心業(yè)務(wù)模塊,而第二業(yè)務(wù)系統(tǒng)可以是在系統(tǒng)中用于提供非核心業(yè)務(wù)服務(wù)的非核心業(yè)務(wù)模塊。此處不做具體限定。
在實際應(yīng)用當(dāng)中,以登錄賬號系統(tǒng)為例進行說明,其中,用于登陸賬號的登陸系統(tǒng)為第一業(yè)務(wù)系統(tǒng),在登錄賬號時用于生成驗證碼的驗證碼系統(tǒng)為第二業(yè)務(wù)系統(tǒng)。通過各個用戶在訪問登錄系統(tǒng)時,獲取登錄系統(tǒng)調(diào)用驗證碼系統(tǒng)生成驗證碼時的參數(shù)。根據(jù)參數(shù)中記錄的驗證碼系統(tǒng)的響應(yīng)時間來判斷驗證碼是否存在異常。如果發(fā)生異常,則對異常信息進行記錄,并判斷在預(yù)訂時間內(nèi)驗證碼系統(tǒng)出現(xiàn)的異常次數(shù)。當(dāng)異常次數(shù)超過異常上限值時,對驗證碼系統(tǒng)進行降級處理。使用戶通過登陸系統(tǒng)進行賬戶登錄時不對驗證碼系統(tǒng)進行調(diào)用,從而防止由于驗證碼系統(tǒng)異常導(dǎo)致的用戶無法登陸的問題。
作為一種可選的實施例,參數(shù)至少用于記錄第二業(yè)務(wù)系統(tǒng)的響應(yīng)時間,其中,在步驟s24根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常中,步驟可以包括:
步驟s241,將響應(yīng)時間與預(yù)先設(shè)置的第一時間閾值進行比對。
步驟s243,當(dāng)響應(yīng)時間大于或等于第一時間閾值時,確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常。
具體的,當(dāng)參數(shù)用于記錄第二業(yè)務(wù)系統(tǒng)的響應(yīng)時間時,可以通過第二業(yè)務(wù)系統(tǒng)響應(yīng)第一業(yè)務(wù)系統(tǒng)調(diào)用的響應(yīng)時間,從而確定第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常。其中,當(dāng)響應(yīng)時間超過預(yù)先設(shè)置的第一時間閾值時,即可確定第二業(yè)務(wù)系統(tǒng)存在調(diào)用異常。第一時間閾值可以根據(jù)第二業(yè)務(wù)系統(tǒng)的平均響應(yīng)時間確定并設(shè)置,當(dāng)然,也可以通過指定的方式進行設(shè)置,此處不做具體限定。
作為一種可選的實施例,在步驟s28對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理之后,上述方法還可以包括:
步驟s30,記錄執(zhí)行降級處理的降級時間,其中,降級時間用于記錄第二業(yè)務(wù)系統(tǒng)被執(zhí)行降級處理的時間。
步驟s32,根據(jù)所述降級時間和當(dāng)前系統(tǒng)時間,確定降級時長。
步驟s34,當(dāng)時降級時間大于或等于預(yù)先設(shè)置的第二時間閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行恢復(fù)處理。
具體的,通過上述步驟s30至步驟s34,記錄對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理的降級時間,并利用降級時間和當(dāng)前從系統(tǒng)獲取到的系統(tǒng)時間,確定該第二業(yè)務(wù)系統(tǒng)被執(zhí)行降級處理的降級時長。將降級時長與預(yù)先設(shè)置的第二時間閾值進行比對,當(dāng)降級時長超過預(yù)先設(shè)置第二時間閾值時,可以恢復(fù)對第二業(yè)務(wù)系統(tǒng)的調(diào)用,對其執(zhí)行恢復(fù)處理。
在實際應(yīng)用當(dāng)中,當(dāng)在預(yù)設(shè)時間區(qū)間的范圍內(nèi),第二業(yè)務(wù)系統(tǒng)發(fā)生的異常次數(shù)達到或超過異常上限時,便對該第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理,并更新與其對應(yīng)的降級狀態(tài),同時開始開啟降級時間進行計時。當(dāng)降級時長達到或超過第一時間閾值后,便更新與該第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)和異常次數(shù),然后重新開始對其進行異常計數(shù)。
作為一種可選的實施例,在步驟s34對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理之后,上述方法還可以包括:
步驟s36,生成與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù),其中,異常狀態(tài)參數(shù)用于對第二業(yè)務(wù)系統(tǒng)是否處于被降級的狀態(tài)進行標記。
具體的,通過步驟s36,生成用于對第二業(yè)務(wù)系統(tǒng)是否處于被降級狀態(tài)進行標識的降級狀態(tài)參數(shù)。當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,只需要通過調(diào)用降級狀態(tài)參數(shù),即可確定當(dāng)前調(diào)用的第二業(yè)務(wù)系統(tǒng)是否已被降級處理。
作為一種可選的實施例,在步驟s22獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù)之前,上述方法還可以包括:
步驟s211,當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時,獲取與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù)。
步驟s213,根據(jù)降級狀態(tài)參數(shù),確定第二業(yè)務(wù)系統(tǒng)是否處于被降級的狀態(tài)。
步驟s215,當(dāng)?shù)诙I(yè)務(wù)系統(tǒng)處于被降級的狀態(tài)時,屏蔽第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)的調(diào)用。
具體的,每當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,首先通過步驟s211至步驟s215對調(diào)用的第二業(yè)務(wù)系統(tǒng)的降級狀態(tài)進行判定。當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,首先獲取與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù)。根據(jù)降級狀態(tài)參數(shù)可以 直接確定當(dāng)前第二業(yè)務(wù)系統(tǒng)是否處于被降級狀態(tài)。當(dāng)確定該第二業(yè)務(wù)系統(tǒng)已被降級處理時,斷開第一業(yè)務(wù)系統(tǒng)與該第二業(yè)務(wù)系統(tǒng)之間的依賴關(guān)系,取消對該第二業(yè)務(wù)系統(tǒng)進行調(diào)用。
作為一種可選的實施方式,在實際應(yīng)用當(dāng)中,可以預(yù)先設(shè)置用于存儲各個第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)的降級狀態(tài)參數(shù)表。當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,只需通過查詢降級狀態(tài)參數(shù)表中相應(yīng)的降級狀態(tài)參數(shù)即可確定。
作為一種可選的實施例,在步驟s211獲取與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù)之前,方法還包括:
步驟s201,根據(jù)獲取到的業(yè)務(wù)請求,確定與業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)系統(tǒng)。
步驟s203,根據(jù)預(yù)先設(shè)置的配置信息,確定業(yè)務(wù)系統(tǒng)是否為第二業(yè)務(wù)系統(tǒng)。
具體的,第一業(yè)務(wù)系統(tǒng)往往直接影響了分布式系統(tǒng)的核心功能,因此,當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)出現(xiàn)異常時,是否對其進行降級處理,都會影響分布式系統(tǒng)的正常運行。因此,可以通過步驟s201至步驟s203,在第一業(yè)務(wù)系統(tǒng)進行調(diào)用時,對調(diào)用系統(tǒng)的類型進行判斷,以判斷其是否為第二業(yè)務(wù)系統(tǒng)。當(dāng)調(diào)用的系統(tǒng)為第二業(yè)務(wù)系統(tǒng)時,才對其進行降級處理。
在實際應(yīng)用當(dāng)中,上述方法可以通過將自設(shè)計的實現(xiàn)算法以單獨封裝的形式封裝為降級模塊,從而可以輕量、簡潔的集成到分布式應(yīng)用系統(tǒng)當(dāng)中,并且,還可以通過將常用的實現(xiàn)算法封裝為相應(yīng)的庫模塊,使其可以方便的被集成到應(yīng)用系統(tǒng)中。
在降級模塊中,通過對用于判斷異常次數(shù)的“異常上限(閾值)”、用于判斷響應(yīng)時間的“計數(shù)統(tǒng)計時間(第一時間閾值)”以及用于判斷降級時長的“降級持續(xù)時間(第二時間閾值)”以配置文件的形式進行預(yù)先設(shè)置。并根據(jù)預(yù)先配置的配置文件實時確定與各個第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)。
具體的,在實際應(yīng)用當(dāng)中,如圖3所示,步驟s1至s3為第一核心業(yè)務(wù)系統(tǒng)對第二核心業(yè)務(wù)系統(tǒng)進行調(diào)用時的執(zhí)行步驟。步驟s4至步驟s12為第一核心業(yè)務(wù)系統(tǒng)對非核心業(yè)務(wù)系統(tǒng)進行調(diào)用時的執(zhí)行步驟。其中,第一核心業(yè)務(wù)系統(tǒng)和第二核心業(yè)務(wù)系統(tǒng)均為用于實現(xiàn)系統(tǒng)核心功能的第一業(yè)務(wù)系統(tǒng),而非核心業(yè)務(wù)系統(tǒng)為用于實現(xiàn)某個特定非核心功能的第二業(yè)務(wù)系統(tǒng)。
其中,在步驟s1至步驟s3中,首先,由第一向與其存在依賴關(guān)系的第二核心業(yè)務(wù)系統(tǒng)發(fā)送調(diào)用請求,第二核心業(yè)務(wù)系統(tǒng)在處理調(diào)用請求后返回相應(yīng)的處理結(jié)果至第一核心業(yè)務(wù)系統(tǒng)。由于核心業(yè)務(wù)系統(tǒng)如果出現(xiàn)異常,意味著是否對其進行降級處理都 不能提供有效服務(wù)。因此,在對核心業(yè)務(wù)系統(tǒng)進行調(diào)用時并不需要異常處理模塊的介入。
在步驟s4至步驟s12中,首先,第一核心業(yè)務(wù)系統(tǒng)向非核心業(yè)務(wù)系統(tǒng)發(fā)送調(diào)用請求,非核心業(yè)務(wù)在處理調(diào)用請求后返回相應(yīng)的處理結(jié)果至第一核心業(yè)務(wù)系統(tǒng)。異常處理模塊根據(jù)處理結(jié)果判斷調(diào)用過程是否發(fā)生異常。當(dāng)發(fā)生異常時,記錄調(diào)用異常并統(tǒng)計在預(yù)先設(shè)置的時間區(qū)間內(nèi),發(fā)生調(diào)用異常的異常次數(shù)。當(dāng)非核心業(yè)務(wù)系統(tǒng)在時間區(qū)間內(nèi)發(fā)生的異常次數(shù)超過閾值時,對該非核心業(yè)務(wù)系統(tǒng)進行降級處理。在進行降級處理后,異常處理模塊將降級狀態(tài)參數(shù)返回至第一核心業(yè)務(wù)系統(tǒng),從而避免第一核心業(yè)務(wù)系統(tǒng)對非核心業(yè)務(wù)系統(tǒng)的調(diào)用。
通過上述步驟,即可實現(xiàn)當(dāng)分布式應(yīng)用系統(tǒng)中相互存在依賴關(guān)系的業(yè)務(wù)系統(tǒng)出現(xiàn)故障時,可以對出現(xiàn)故障的第二業(yè)務(wù)系統(tǒng)進行自動降級處理,從而切斷第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)的訪問,以避免第一業(yè)務(wù)系統(tǒng)自身受到出現(xiàn)故障的第二業(yè)務(wù)系統(tǒng)的影響。進一步的,還可以在對故障的第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理到達預(yù)設(shè)的時間后,自動恢復(fù)降級,從而保證分布式應(yīng)用系統(tǒng)的正常運行。
在對上述異常處理模塊進行開發(fā)時,可以利用面向切面編程aop技術(shù),通過一行代碼即可生成一個降級配置,并集成到代碼當(dāng)中。當(dāng)降級模塊利用java語言進行開發(fā)時,可以利用java語言原生的注解來實現(xiàn)對第二業(yè)務(wù)系統(tǒng)的降級處理。當(dāng)降級模塊利用c++語言進行開發(fā)時,則可以通過調(diào)用aspectc庫來實現(xiàn)。當(dāng)然,由于只需要極少的代碼就可以實現(xiàn)上述降級模塊的功能,也可以直接將源代碼集成到系統(tǒng)當(dāng)中。具體的實現(xiàn)方式此處不做具體限定。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
實施例2
根據(jù)本發(fā)明實施例,還提供了一種用于實施上述用于分布式系統(tǒng)的異常處理方法的用于分布式系統(tǒng)的異常處理裝置,如圖4所示,分布式系統(tǒng)中至少包括第一業(yè)務(wù)系統(tǒng)和第二業(yè)務(wù)系統(tǒng),其中,上述裝置可以包括:第一獲取模塊22、判斷模塊24、第一確定模塊26和第一處理模塊28。
其中,第一獲取模塊22,用于獲取第一業(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時生成的參數(shù);判斷模塊24,用于根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常;第一確定模塊26,用于當(dāng)確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);第一處理模塊28,用于將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理。
具體的,第一業(yè)務(wù)系統(tǒng)通常為用于實現(xiàn)系統(tǒng)核心功能的核心業(yè)務(wù)系統(tǒng),而第二業(yè)務(wù)系統(tǒng)通常為與第一業(yè)務(wù)系統(tǒng)具有依賴關(guān)系的非核心業(yè)務(wù)系統(tǒng),第一業(yè)務(wù)系統(tǒng)通過調(diào)用第二業(yè)務(wù)系統(tǒng)來實現(xiàn)某些特定的非核心功能。因此,在上述第一獲取模塊22、判斷模塊24、第一確定模塊26和第一處理模塊28中,通過獲取第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用的過程中,生成的參數(shù),來判斷第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)的調(diào)用是否存在異常。當(dāng)調(diào)用出現(xiàn)異常時,對發(fā)生調(diào)用異常的第二業(yè)務(wù)系統(tǒng),在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生的調(diào)用異常的異常次數(shù)進行記錄。當(dāng)在時間區(qū)間內(nèi)第二業(yè)務(wù)系統(tǒng)發(fā)生調(diào)用異常的次數(shù)超過預(yù)先設(shè)置的閾值,即異常上限時,對該第二業(yè)務(wù)系統(tǒng)進行降級處理。通過上述步驟,即可以達到在第二業(yè)務(wù)系統(tǒng)出現(xiàn)調(diào)用異常時系統(tǒng)自動進行異常處理的目的,從而實現(xiàn)了在不增加硬件成本和維護成本的情況下,及時對于第二業(yè)務(wù)系統(tǒng)出現(xiàn)的異常進行處理的技術(shù)效果,進而解決了由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系統(tǒng)運行異常的技術(shù)問題。
作為一種可選的實施例,在參數(shù)中,至少包含用于記錄第二業(yè)務(wù)系統(tǒng)的響應(yīng)時間,其中,上述判斷模塊24可以包括:子比對模塊241和子確定模塊243。
其中,子比對模塊241,用于將響應(yīng)時間與預(yù)先設(shè)置的第一時間閾值進行比對;子確定模塊243,用于當(dāng)響應(yīng)時間大于或等于第一時間閾值時,確定第二業(yè)務(wù)系統(tǒng)調(diào)用異常。
具體的,當(dāng)參數(shù)用于記錄第二業(yè)務(wù)系統(tǒng)的響應(yīng)時間時,可以通過第二業(yè)務(wù)系統(tǒng)響應(yīng)第一業(yè)務(wù)系統(tǒng)調(diào)用的響應(yīng)時間,從而確定第二業(yè)務(wù)系統(tǒng)是否調(diào)用異常。其中,當(dāng)響應(yīng)時間超過預(yù)先設(shè)置的第一時間閾值時,即可確定第二業(yè)務(wù)系統(tǒng)存在調(diào)用異常。第一時間閾值可以根據(jù)第二業(yè)務(wù)系統(tǒng)的平均響應(yīng)時間確定并設(shè)置,當(dāng)然,也可以通過指定 的方式進行設(shè)置,此處不做具體限定。
作為一種可選的實施例,如圖5所示,上述裝置還可以包括:記錄模塊30、第二確定模塊32和第二處理模塊34。
其中,記錄模塊30,用于記錄執(zhí)行降級處理的降級時間,其中,降級時間用于記錄第二業(yè)務(wù)系統(tǒng)被執(zhí)行降級處理的時間;第二確定模塊32,用于根據(jù)降級時間和當(dāng)前系統(tǒng)時間,確定降級時長;第二處理模塊34,用于當(dāng)時降級時長大于或等于預(yù)先設(shè)置的第二時間閾值時,對第二業(yè)務(wù)系統(tǒng)執(zhí)行恢復(fù)處理。
具體的,通過上述記錄模塊30、第二確定模塊32和第二處理模塊34,記錄對第二業(yè)務(wù)系統(tǒng)執(zhí)行降級處理的降級時間,并利用降級時間和當(dāng)前從系統(tǒng)獲取到的系統(tǒng)時間,確定該第二業(yè)務(wù)系統(tǒng)被執(zhí)行降級處理的降級時長。將降級時長與預(yù)先設(shè)置的第二時間閾值進行比對,當(dāng)降級時長超過預(yù)先設(shè)置第二時間閾值時,可以恢復(fù)對第二業(yè)務(wù)系統(tǒng)的調(diào)用,對其執(zhí)行恢復(fù)處理。
作為一種可選的實施例,如圖6所示,上述裝置還可以包括:生成模塊36。
其中,生成模塊36,用于生成與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù),其中,異常狀態(tài)參數(shù)用于對第二業(yè)務(wù)系統(tǒng)是否處于被降級的狀態(tài)進行標記。
具體的,通過生成模塊36,生成用于對第二業(yè)務(wù)系統(tǒng)是否處于被降級狀態(tài)進行標識的降級狀態(tài)參數(shù)。當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,只需要通過調(diào)用降級狀態(tài)參數(shù),即可確定當(dāng)前調(diào)用的第二業(yè)務(wù)系統(tǒng)是否已被降級處理。
作為一種可選的實施例,如圖7所示,在上述裝置中,還可以包括:第二獲取模塊211、第三確定模塊213和屏蔽模塊215。
其中,第二獲取模塊211,用于當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)調(diào)用第二業(yè)務(wù)系統(tǒng)時,獲取與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù);第三確定模塊213,用于根據(jù)降級狀態(tài)參數(shù),確定第二業(yè)務(wù)系統(tǒng)是否處于被降級的狀態(tài);屏蔽模塊215,用于當(dāng)?shù)诙I(yè)務(wù)系統(tǒng)處于被降級的狀態(tài)時,屏蔽第一業(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)的調(diào)用。
具體的,每當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,首先通過上述第二獲取模塊211、第三確定模塊213和屏蔽模塊215對調(diào)用的第二業(yè)務(wù)系統(tǒng)的降級狀態(tài)進行判定。當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)對第二業(yè)務(wù)系統(tǒng)進行調(diào)用時,首先獲取與第二業(yè)務(wù)系統(tǒng)對應(yīng)的降級狀態(tài)參數(shù)。根據(jù)降級狀態(tài)參數(shù)可以直接確定當(dāng)前第二業(yè)務(wù)系統(tǒng)是否處于被降級狀態(tài)。當(dāng)確定該第二業(yè)務(wù)系統(tǒng)已被降級處理時,斷開第一業(yè)務(wù)系統(tǒng)與該第二業(yè)務(wù)系統(tǒng)之間的依賴關(guān)系,取消對該第二業(yè)務(wù)系統(tǒng)進行調(diào)用。
作為一種可選的實施例,如圖8所示,在上述裝置中,還可以包括:第四確定模塊201和第五確定模塊203。
其中,第四確定模塊201,用于根據(jù)獲取到的業(yè)務(wù)請求,確定與業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)系統(tǒng);第五確定模塊203,用于根據(jù)預(yù)先設(shè)置的配置信息,確定業(yè)務(wù)系統(tǒng)是否為第二業(yè)務(wù)系統(tǒng)。
具體的,第一業(yè)務(wù)系統(tǒng)往往直接影響了分布式系統(tǒng)的核心功能,因此,當(dāng)?shù)谝粯I(yè)務(wù)系統(tǒng)出現(xiàn)異常時,是否對其進行降級處理,都會影響分布式系統(tǒng)的正常運行。因此,可以通過上述第四確定模塊201和第五確定模塊203,在第一業(yè)務(wù)系統(tǒng)進行調(diào)用時,對調(diào)用系統(tǒng)的類型進行判斷,以判斷其是否為第二業(yè)務(wù)系統(tǒng)。當(dāng)調(diào)用的系統(tǒng)為第二業(yè)務(wù)系統(tǒng)時,才對其進行降級處理。
實施例3
本發(fā)明的實施例可以提供一種用于分布式系統(tǒng)的異常處理系統(tǒng),如圖9所示,該系統(tǒng)包括:第一業(yè)務(wù)系統(tǒng)31、第二業(yè)務(wù)系統(tǒng)33和異常處理模塊35。
其中,第一業(yè)務(wù)系統(tǒng)31,根據(jù)接收的業(yè)務(wù)請求,向第二業(yè)務(wù)系統(tǒng)33發(fā)送調(diào)用請求;第二業(yè)務(wù)系統(tǒng)33,與第一業(yè)務(wù)系統(tǒng)31連接,用于處理第一業(yè)務(wù)系統(tǒng)31發(fā)送的調(diào)用請求;異常處理模塊3535,分別與第一業(yè)務(wù)系統(tǒng)31和第二業(yè)務(wù)系統(tǒng)33連接,用于獲取第一業(yè)務(wù)系統(tǒng)31調(diào)用第二業(yè)務(wù)系統(tǒng)33時生成的參數(shù);根據(jù)參數(shù),判斷第二業(yè)務(wù)系統(tǒng)33是否調(diào)用異常;當(dāng)確定第二業(yè)務(wù)系統(tǒng)33調(diào)用異常時,確定在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生調(diào)用異常的異常次數(shù);將異常次數(shù)與預(yù)先設(shè)置的閾值進行比對,當(dāng)異常次數(shù)大于或等于閾值時,對第二業(yè)務(wù)系統(tǒng)33執(zhí)行降級處理。
具體的,在上述第一業(yè)務(wù)系統(tǒng)31、第二業(yè)務(wù)系統(tǒng)33和異常處理模塊3535中,通過獲取第一業(yè)務(wù)系統(tǒng)31對第二業(yè)務(wù)系統(tǒng)33進行調(diào)用的過程中,生成的參數(shù),來判斷第一業(yè)務(wù)系統(tǒng)31對第二業(yè)務(wù)系統(tǒng)33的調(diào)用是否存在異常。當(dāng)調(diào)用出現(xiàn)異常時,對發(fā)生調(diào)用異常的第二業(yè)務(wù)系統(tǒng)33,在預(yù)設(shè)時間區(qū)間內(nèi)發(fā)生的調(diào)用異常的異常次數(shù)進行記錄。當(dāng)在時間區(qū)間內(nèi)第二業(yè)務(wù)系統(tǒng)33發(fā)生調(diào)用異常的次數(shù)超過預(yù)先設(shè)置的閾值,即異常上限時,對該第二業(yè)務(wù)系統(tǒng)33進行降級處理。通過上述步驟,即可以達到在第二業(yè)務(wù)系統(tǒng)33出現(xiàn)調(diào)用異常時系統(tǒng)自動進行異常處理的目的,從而實現(xiàn)了在不增加硬件成本和維護成本的情況下,及時對于第二業(yè)務(wù)系統(tǒng)33出現(xiàn)的異常進行處理的技術(shù)效果,進而解決了由于在分布式系統(tǒng)中的某個業(yè)務(wù)系統(tǒng)發(fā)生異常,導(dǎo)致與其具有依賴關(guān)系業(yè)務(wù)系統(tǒng)運行異常的技術(shù)問題。
當(dāng)然,在上述實施例中的第一業(yè)務(wù)系統(tǒng),也可以是在系統(tǒng)中用于提供核心業(yè)務(wù)服 務(wù)的核心業(yè)務(wù)模塊,而第二業(yè)務(wù)系統(tǒng)可以是在系統(tǒng)中用于提供非核心業(yè)務(wù)服務(wù)的非核心業(yè)務(wù)模塊。此處不做具體限定。
在實際應(yīng)用當(dāng)中,以登錄賬號系統(tǒng)為例進行說明,其中,用于登陸賬號的登陸系統(tǒng)為第一業(yè)務(wù)系統(tǒng),在登錄賬號時用于生成驗證碼的驗證碼系統(tǒng)為第二業(yè)務(wù)系統(tǒng)。通過各個用戶在訪問登錄系統(tǒng)時,獲取登錄系統(tǒng)調(diào)用驗證碼系統(tǒng)生成驗證碼時的參數(shù)。根據(jù)參數(shù)中記錄的驗證碼系統(tǒng)的響應(yīng)時間來判斷驗證碼是否存在異常。如果發(fā)生異常,則對異常信息進行記錄,并判斷在預(yù)訂時間內(nèi)驗證碼系統(tǒng)出現(xiàn)的異常次數(shù)。當(dāng)異常次數(shù)超過異常上限值時,對驗證碼系統(tǒng)進行降級處理。使用戶通過登陸系統(tǒng)進行賬戶登錄時不對驗證碼系統(tǒng)進行調(diào)用,從而防止由于驗證碼系統(tǒng)異常導(dǎo)致的用戶無法登陸的問題。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所 述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。