本發(fā)明涉及數據處理技術領域,尤其涉及一種故障定位方法及裝置。
背景技術:
目前,關于故障定位技術的研究,已有很多相關報道。其中,幾種典型的故障定位技術包括:
1、人工測試法
該方法是當通信網絡發(fā)生故障時,由具有一定經驗的工作人員,利用一定的測試儀器,根據來自通信網絡中的故障告警信號,判斷故障發(fā)生的具體位置。
2、通道相關性分析法
該方法是利用業(yè)務通路的相關性,在通信網絡發(fā)生故障時,通過前向警示信號(fdi)和后向警示信號(bdi),將告警信息傳給業(yè)務通路上游網元,由上游網元根據該告警信息進行仲裁,以判斷故障發(fā)生的具體位置。
3、中心控制網元分析法
該方法是在通信網絡中設置一個主控制網元,在通信網路發(fā)生故障時,其他所有網元的告警指示信號都傳送給該主控制網元,由該主控制網元,根據這些告警指示信號和預先存儲的關于通信網絡的業(yè)務和拓撲信息,判斷故障發(fā)生的具體位置。
4、案例分析法
在該方法中,首先將已發(fā)生的故障整理成一個案例,并建立一個故障定位信息庫。當通信網絡發(fā)生故障時,該方法利用該故障定位信息庫,通過搜索與故障警告信號相匹配的故障標識來進行故障定位。
在上述幾種典型的故障定位技術中,人工測試法,由于不能實時地對受損業(yè)務進行保護和及時地排除故障,不適用于大型計算機集群系統(tǒng);而對于通道相關性分析法和中心控制網元分析法,由于在故障定位時,需要在網元之前傳遞大量的故障告警信號以作為上游網元或主控制網元判斷的依據,因此,若采用這兩種方法,不但延長故障定位時間,而且龐雜的計算更使得這兩種方法難于在例如分布式控制的通信網絡中得到應用;案例分析法雖然定位準確,但是其不能定位案例庫中沒有的故障類型,因此在一些特殊場合中不能使用該方法。因此,需要一種可以快速精確定位故障的方法。
技術實現要素:
本申請?zhí)峁┮环N故障定位方法及裝置,用以快速精確定位服務器集群系統(tǒng)的故障。
本發(fā)明實施例提供的一種故障定位方法,包括:
中心節(jié)點根據待檢測交易確定m個檢測消息,并向待檢測節(jié)點發(fā)送所述m個檢測消息;所述m個檢測消息的傳輸路徑覆蓋所有待檢測節(jié)點;
針對所述m個檢測消息中的每個檢測消息,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息;其中,所述反饋消息是根據所述檢測消息對應的待檢測節(jié)點的運行結果得到的;所述存在異常節(jié)點的檢測消息的傳輸路徑中的待檢測節(jié)點為初篩節(jié)點;
所述中心節(jié)點根據所述初篩節(jié)點確定n個檢測消息,并向所述初篩節(jié)點發(fā)送所述n個檢測消息;所述n個檢測消息的傳輸路徑覆蓋所述初篩節(jié)點的所有傳輸路徑;
針對所述n個檢測消息中的每個檢測消息,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點。
可選的,所述中心節(jié)點根據待檢測交易確定m個檢測消息之前,還包括:
所述中心節(jié)點基于不同交易類型,將所有待檢測節(jié)點劃分為不同的集群,同一個集群中的待檢測節(jié)點處理同一交易類型的消息;
所述中心節(jié)點向待檢測節(jié)點發(fā)送所述m個檢測消息,包括:
針對一個集群,所述中心節(jié)點向所述集群中的待檢測節(jié)點發(fā)送所述m個檢測消息;
所述中心節(jié)點向所述初篩節(jié)點發(fā)送所述n個檢測消息,包括:
針對一個集群,所述中心節(jié)點向所述集群中的初篩節(jié)點發(fā)送所述n個檢測消息。
可選的,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點之后,還包括:
將所述異常節(jié)點的狀態(tài)設置為隔離狀態(tài)。
可選的,所述將所述異常節(jié)點進行隔離之后,還包括:
所述中心節(jié)點向所述異常節(jié)點發(fā)送檢測消息,根據所述檢測消息相對應的反饋消息確定所述異常節(jié)點已恢復正常,則解除所述異常節(jié)點隔離狀態(tài)。
可選的,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息,包括:
針對所述m個檢測消息中的任一檢測消息,所述中心節(jié)點在閾值時間內未收到所述檢測消息對應的反饋消息,或所述檢測消息對應的反饋消息為錯誤消息,則確定存在異常節(jié)點。
可選的,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點,包括:
針對經過第一待檢測節(jié)點的所有檢測消息相對應的反饋消息,所述中心節(jié)點在所述閾值時間內均未收到所述反饋消息,或所述反饋消息均為錯誤消息,則確定所述第一待檢測節(jié)點為異常節(jié)點。
一種故障定位裝置,包括:
第一發(fā)送模塊,用于根據待檢測交易確定m個檢測消息,并向待檢測節(jié)點發(fā)送所述m個檢測消息;所述m個檢測消息的傳輸路徑覆蓋所有待檢測節(jié)點;
確定模塊,用于針對所述m個檢測消息中的每個檢測消息,根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息;其中,所述反饋消息是根據所述檢測消息對應的待檢測節(jié)點的運行結果得到的;所述存在異常節(jié)點的檢測消息的傳輸路徑中的待檢測節(jié)點為初篩節(jié)點;
第二發(fā)送模塊,用于根據所述初篩節(jié)點確定n個檢測消息,并向所述初篩節(jié)點發(fā)送所述n個檢測消息;所述n個檢測消息的傳輸路徑覆蓋所述初篩節(jié)點的所有傳輸路徑;
定位模塊,用于針對所述n個檢測消息中的每個檢測消息,根據所述檢測消息相對應的反饋消息,確定異常節(jié)點。
可選的,還包括劃分模塊,用于基于不同交易類型,將所有待檢測節(jié)點劃分為不同的集群,同一個集群中的待檢測節(jié)點處理同一交易類型的消息;
所述第一發(fā)送模塊,具體用于針對一個集群,向所述集群中的待檢測節(jié)點發(fā)送所述m個檢測消息;
所述第二發(fā)送模塊,具體用于針對一個集群,向所述集群中的初篩節(jié)點發(fā)送所述n個檢測消息。
可選的,還包括處理模塊,用于:
將所述異常節(jié)點的狀態(tài)設置為隔離狀態(tài)。
可選的,所述處理模塊,還用于:
向所述異常節(jié)點發(fā)送檢測消息,根據所述檢測消息相對應的反饋消息確定所述異常節(jié)點已恢復正常,則解除所述異常節(jié)點隔離狀態(tài)。
可選的,所述確定模塊,具體用于:
針對所述m個檢測消息中的任一檢測消息,在閾值時間內未收到所述檢測消息對應的反饋消息,或所述檢測消息對應的反饋消息為錯誤消息,則確定存在異常節(jié)點。
可選的,所述定位模塊,具體用于:
針對經過第一待檢測節(jié)點的所有檢測消息相對應的反饋消息,在所述閾值時間內均未收到所述反饋消息,或所述反饋消息均為錯誤消息,則確定所述第一待檢測節(jié)點為異常節(jié)點。
本發(fā)明實施例中,當待檢測節(jié)點中的某個節(jié)點出現故障或需要對整體待檢測節(jié)點進行維護篩查時,中心節(jié)點根據待檢測交易確定m個檢測信息,并向待檢測節(jié)點進行發(fā)送。該m個檢測消息的傳輸路徑覆蓋了所有待檢測節(jié)點。中心節(jié)點向待檢測節(jié)點發(fā)送檢測消息后,接收每個檢測消息對應的反饋消息,反饋消息是接收到檢測消息的待檢測節(jié)點根據運行結果反饋的。中心節(jié)點根據接收到的反饋消息,確定存在異常節(jié)點的檢測消息,并將存在異常節(jié)點的檢測消息的傳輸路徑中對應的待檢測節(jié)點作為初篩節(jié)點,可以確定,異常節(jié)點存在于初篩節(jié)點中。中心節(jié)點根據初篩節(jié)點確定n個檢測消息,并向初篩節(jié)點發(fā)送n個檢測消息,這n個檢測消息的傳輸路徑覆蓋了初篩節(jié)點的所有傳輸路徑。最后,中心節(jié)點根據n個檢測消息對應的反饋消息,確定異常節(jié)點。本發(fā)明實施例將檢測節(jié)點全覆蓋和傳輸路徑權覆蓋相結合,實現了服務器集群系統(tǒng)故障的高速精準定位。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例適用的一種系統(tǒng)架構示意圖;
圖2為本發(fā)明實施例提供的一種空中發(fā)卡方法的流程示意圖;
圖3為本發(fā)明具體實施例中一種空中發(fā)卡方法的流程示意圖;
圖4為本發(fā)明實施例提供的一種空中發(fā)卡裝置的結構示意圖;
圖5為本發(fā)明實施例提供的另一種空中發(fā)卡裝置的結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例所適用的一種系統(tǒng)架構,包括中心節(jié)點和待檢測節(jié)點。其中,中心節(jié)點和待檢測節(jié)點可以是計算機等網絡設備,待檢測節(jié)點可以是多個服務器或進程組成的系統(tǒng)。優(yōu)選地,中心節(jié)點和待檢測節(jié)點可以采用云計算技術進行信息處理。
中心節(jié)點用于計算檢測消息的發(fā)送路徑,并向待檢測節(jié)點發(fā)送檢測消息,通過對待檢測節(jié)點反饋的交易結果的記錄和分析,判定各待檢測節(jié)點的狀態(tài),并向異常節(jié)點發(fā)送隔離指令,向恢復正常的異常節(jié)點發(fā)送解除隔離指令。待檢測節(jié)點用于接收中心節(jié)點發(fā)送的檢測消息,依據發(fā)送路徑轉發(fā)數據報文,并向中心節(jié)點反饋運行結果,以使中心節(jié)點根據運行結果確定各待檢測節(jié)點的狀態(tài)。
中心節(jié)點可以通過internet網絡與待檢測節(jié)點進行通信,也可以通過全球移動通信系統(tǒng)(globalsystemformobilecommunications,簡稱gsm)、長期演進(longtermevolution,簡稱lte)系統(tǒng)等移動通信系統(tǒng)與待檢測節(jié)點進行通信。待檢測節(jié)點之間可以通過internet網絡進行通信,也可以通過全球移動通信系統(tǒng)(globalsystemformobilecommunications,簡稱gsm)、長期演進(longtermevolution,簡稱lte)系統(tǒng)等移動通信系統(tǒng)進行通信。
圖2示例性示出了本發(fā)明實施例提供的一種故障定位方法的流程示意圖。如圖2所示,本發(fā)明實施例提供的故障定位方法,包括以下步驟:
步驟201、中心節(jié)點根據待檢測交易確定m個檢測消息,并向待檢測節(jié)點發(fā)送所述m個檢測消息;所述m個檢測消息的傳輸路徑覆蓋所有待檢測節(jié)點。
步驟202、針對所述m個檢測消息中的每個檢測消息,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息;其中,所述反饋消息是根據所述檢測消息對應的待檢測節(jié)點的運行結果得到的;所述存在異常節(jié)點的檢測消息的傳輸路徑中的待檢測節(jié)點為初篩節(jié)點。
步驟203、所述中心節(jié)點根據所述初篩節(jié)點確定n個檢測消息,并向所述初篩節(jié)點發(fā)送所述n個檢測消息;所述n個檢測消息的傳輸路徑覆蓋所述初篩節(jié)點的所有傳輸路徑。
步驟204、針對所述n個檢測消息中的每個檢測消息,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點。
本發(fā)明實施例中,當待檢測節(jié)點中的某個節(jié)點出現故障或需要對整體待檢測節(jié)點進行維護篩查時,中心節(jié)點根據待檢測交易確定m個檢測信息,并向待檢測節(jié)點進行發(fā)送。該m個檢測消息的傳輸路徑覆蓋了所有待檢測節(jié)點。中心節(jié)點向待檢測節(jié)點發(fā)送檢測消息后,接收每個檢測消息對應的反饋消息,反饋消息是接收到檢測消息的待檢測節(jié)點根據運行結果反饋的。中心節(jié)點根據接收到的反饋消息,確定存在異常節(jié)點的檢測消息,并將存在異常節(jié)點的檢測消息的傳輸路徑中對應的待檢測節(jié)點作為初篩節(jié)點,可以確定,異常節(jié)點存在于初篩節(jié)點中。中心節(jié)點根據初篩節(jié)點確定n個檢測消息,并向初篩節(jié)點發(fā)送n個檢測消息,這n個檢測消息的傳輸路徑覆蓋了初篩節(jié)點的所有傳輸路徑。最后,中心節(jié)點根據n個檢測消息對應的反饋消息,確定異常節(jié)點。本發(fā)明實施例將檢測節(jié)點全覆蓋和傳輸路徑權覆蓋相結合,實現了服務器集群系統(tǒng)故障的高速精準定位。
本發(fā)明實施例中的檢測消息是根據正常交易消息模擬得到,由于正常的交易消息的發(fā)送路徑是隨機,不能保證故障檢測的精確性和及時性,而且對于正常的交易消息,需要保證其成功率,因此正常的交易消息不適合在本發(fā)明實施例的故障檢測中使用。模擬出的檢測消息的內容與正常交易消息的內容可以是一致的,可以替代正常交易消息對待檢測節(jié)點系統(tǒng)中的故障進行定位。
一般來說,一個交易消息需要多個服務器節(jié)點協(xié)同處理,每個服務器節(jié)點依次完成該交易消息的一個環(huán)節(jié),同時,有多個服務器節(jié)點可以處理交易消息的同一個環(huán)節(jié)。由此,根據處理交易消息的先后順序,可以將服務器節(jié)點分為多個層次,每一層次的服務器節(jié)點完成交易消息的一個環(huán)節(jié)。例如,待檢測節(jié)點系統(tǒng)包含a、b、c共3個層次,如圖3所示。a層有3個待檢測節(jié)點,分別為a1、a2、a3,b層有3個待檢測節(jié)點,分別為b1、b2、b3,c層有2個待檢測節(jié)點,分別為c1和c2。a層中的任一待檢測節(jié)點均可處理交易消息的第一個環(huán)節(jié),即a1、a2、a3中的任一待檢測節(jié)點接收中心節(jié)點發(fā)送的檢測消息,將該檢測消息處理后發(fā)送給b層的待檢測節(jié)點。b1、b2、b3中的任一待檢測節(jié)點接收a層發(fā)送的該檢測消息,將該檢測消息處理后發(fā)送給c層的待檢測節(jié)點。c1或c2接收該檢測消息并成功處理后,將結果按原路反饋回中心節(jié)點。中心節(jié)點正常接收到反饋消息后,可以根據該反饋消息確定檢測消息發(fā)送路徑上的3個待檢測節(jié)點的狀態(tài)均為正常狀態(tài)。
本發(fā)明實施例中,中心節(jié)點分為兩個階段向待檢測節(jié)點系統(tǒng)發(fā)送檢測消息。第一階段檢測消息的發(fā)送方式為覆蓋所有待檢測節(jié)點,可根據待檢測節(jié)點的反饋確定待檢測節(jié)點系統(tǒng)中是否存在故障節(jié)點。若確定待檢測節(jié)點系統(tǒng)中存在故障節(jié)點,則中心節(jié)點發(fā)送第二階段的檢測消息。第二階段檢測消息的發(fā)送方式為覆蓋所有的傳輸路徑,可根據反饋確定出故障節(jié)點的具體位置。下面仍以圖3為例詳細介紹兩種檢測消息的發(fā)送方式。
首先是覆蓋所有待檢測節(jié)點,對于圖3中的待檢測節(jié)點,第一階段中心節(jié)點需要發(fā)送3個檢測消息。第一個檢測消息的傳輸路徑為a1-b1-c1,第二個檢測消息的傳輸路徑為a2-b2-c2,第三個檢測消息的傳輸路徑為a3-b3-c1,這樣,3個檢測消息的傳輸路徑覆蓋了所有的待檢測節(jié)點,即步驟201中m的數量為3。中心節(jié)點可以同時發(fā)送這3個檢測消息,也可以依次發(fā)送。
中心節(jié)點接收這3個檢測消息對應的反饋消息,并根據反饋消息的接收情況確定存在異常節(jié)點的檢測消息。
所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息,包括:
針對所述m個檢測消息中的任一檢測消息,所述中心節(jié)點在閾值時間內未收到所述檢測消息對應的反饋消息,或所述檢測消息對應的反饋消息為錯誤消息,則確定存在異常節(jié)點。
針對上述3個檢測消息,中心節(jié)點在閾值時間內未接受到3個檢測消息中的任一檢測消息對應的反饋消息,或上述3個檢測消息中的任一檢測消息對應的反饋消息為錯誤消息,則確定待檢測節(jié)點系統(tǒng)中存在異常節(jié)點。例如,第二個檢測消息對應的反饋消息,或者第二個檢測消息對應的反饋消息為錯誤消息,則確定待檢測節(jié)點中存在異常節(jié)點且這個異常節(jié)點存在于第二個檢測消息的傳輸路徑上,則將第二個檢測消息的傳輸路徑上的待檢測節(jié)點a2、b2和c2作為初篩節(jié)點。
之后,中心節(jié)點根據a2、b2和c2這三個初篩節(jié)點確定發(fā)送第二階段檢測消息的數量以及發(fā)送路徑。第二階段檢測消息的傳輸路徑需覆蓋初篩節(jié)點的所有傳輸路徑。對于初篩節(jié)點a2來說,可能的傳輸路徑為a2-b1-c1、a2-b2-c1、a2-b3-c1、a2-b1-c2、a2-b2-c2、a2-b3-c2。對于初篩節(jié)點b2來說,可能的傳輸路徑為a1-b2-c1、a3-b2-c1、a1-b2-c2、a3-b2-c2。對于初篩節(jié)點c2來說,可能的傳輸路徑為a1-b1-c2、a2-b1-c2、a3-b1-c2、a1-b2-c2、a3-b2-c2、a1-b3-c2、a2-b3-c2、a3-b3-c2。因此,第二階段檢測消息的數量為每層節(jié)點數相乘,為3*3*2=18,即步驟203中n的數量為18,中心節(jié)點需要向待檢測節(jié)點系統(tǒng)一共發(fā)送18個檢測消息。
對于第二階段檢測消息的反饋消息,若某個待檢測節(jié)點涉及到的傳輸路徑反饋的消息均顯示不正常,則確定該待檢測節(jié)點為異常節(jié)點。
所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點,包括:
針對經過第一待檢測節(jié)點的所有檢測消息相對應的反饋消息,所述中心節(jié)點在所述閾值時間內均未收到所述反饋消息,或所述反饋消息均為錯誤消息,則確定所述第一待檢測節(jié)點為異常節(jié)點。
在第一階段,只要有一條檢測消息對應的反饋消息出現異常即可確定待檢測節(jié)點系統(tǒng)中存在異常節(jié)點。在第二階段,異常節(jié)點的存在會導致路徑中涉及到該異常節(jié)點的所有檢測消息均無法被正常處理,因此相應會出現多個反饋消息出現異常。因此,中心節(jié)點可根據出現異常的反饋消息確定對應的檢測消息,再根據檢測消息傳輸路徑上的節(jié)點準確定位出異常節(jié)點。例如,上述傳輸路徑a1-b2-c1、a2-b2-c1、a3-b2-c1、a1-b2-c2、a2-b2-c2、a3-b2-c2的檢測消息對應的反饋消息異常,則中心節(jié)點可以確定待檢測節(jié)點b2為異常節(jié)點。
需要說明的是,在步驟203中,并非一次全路徑檢測就可以確認異常節(jié)點,因為系統(tǒng)是允許部分丟包和異常重試機制的,因此懷疑存在異常節(jié)點后需進行多輪全路徑檢測,記錄下各個節(jié)點在全路徑檢測中的狀態(tài),每一輪全路徑檢測中只需有一條成功交易經過某節(jié)點,則確認該節(jié)點狀態(tài)為正常。多輪全路徑檢測后再進行節(jié)點狀態(tài)判定,例如進行5輪全路徑檢測,則每個節(jié)點都有5個狀態(tài)記錄,可以根據一定規(guī)則最終判定該節(jié)點狀態(tài)。假如,a節(jié)點記錄為(正常,異常,正常,異常,異常),若規(guī)定異常次數大于正常次數即為異常,則判定a為異常,隔離a;若規(guī)定全為異常才判定a為異常,則此時判定a為正常。這種機制可以增強判定算法魯棒性,使得系統(tǒng)更加穩(wěn)定,否則將頻繁出現系統(tǒng)節(jié)點被誤判并隔離的情況。
為了減少系統(tǒng)資源的消耗,增強故障檢測的針對性,本發(fā)明實施例基于交易類型的不同,將所有待檢測節(jié)點機進行分類。上述步驟201之前還包括:
所述中心節(jié)點基于不同交易類型,將所有待檢測節(jié)點劃分為不同的集群,同一個集群中的待檢測節(jié)點處理同一交易類型的消息。
所述中心節(jié)點向待檢測節(jié)點發(fā)送所述m個檢測消息,包括:
針對一個集群,所述中心節(jié)點向所述集群中的待檢測節(jié)點發(fā)送所述m個檢測消息;
所述中心節(jié)點向所述初篩節(jié)點發(fā)送所述n個檢測消息,包括:
針對一個集群,所述中心節(jié)點向所述集群中的初篩節(jié)點發(fā)送所述n個檢測消息。
正常的交易消息可以根據類型分為查詢類消息、消費類消息、操作類消息等,本發(fā)明實施例中根據交易類型的不同,將待檢測節(jié)點劃分為不同的集群,并對不同的集群進行分別檢測,這樣可以使得檢測策略更加靈活,盡量減少檢測消息的數量,減少系統(tǒng)資源的消耗。仍以圖3中的待檢測節(jié)點為例,待檢測節(jié)點系統(tǒng)可以處理查詢和消費兩種檢測消息,其中,a層的3個待檢測節(jié)點和c層的2個待檢測節(jié)點均可以處理查詢和消費這兩種檢測消息,而b層中待檢測節(jié)點b1只處理查詢類檢測消息,b2和b3只處理消費類檢測消息。因此,針對查詢類檢測消息,需要檢測a層、c層的所有待檢測節(jié)點和b層的待檢測節(jié)點b1;針對消費類檢測消息,需要檢測a層、c層的所有待檢測節(jié)點以及b層的待檢測節(jié)點b2和b3。故基于不同的交易類型,將待檢測節(jié)點劃分為兩個集群,對應于查詢類檢測消息的集群包括待檢測節(jié)點a1、a2、a3、b1、c1、c2和c3,對應于消費類檢測消息的集群包括待檢測節(jié)點a1、a2、a3、b2、b3、c1、c2和c3。本發(fā)明實施例針對這兩個集群分別發(fā)送檢測消息進行故障檢測和定位。
本發(fā)明實施例中,將異常節(jié)點定位后,會對檢測出的異常節(jié)點進行處理。步驟204,所述中心節(jié)點根據所述檢測消息相對應的反饋消息,確定異常節(jié)點之后,還包括:
將所述異常節(jié)點的狀態(tài)設置為隔離狀態(tài)。
此外,在已被隔離的異常節(jié)點恢復正常后,可以解除隔離。即所述將所述異常節(jié)點進行隔離之后,還包括:
所述中心節(jié)點向所述異常節(jié)點發(fā)送檢測消息,根據所述檢測消息相對應的反饋消息確定所述異常節(jié)點已恢復正常,則解除所述異常節(jié)點隔離狀態(tài)。
本發(fā)明實施例實現了服務器集群系統(tǒng)故障高速精準定位、快速隔離的功能;在已隔離節(jié)點恢復正常功能的情況下,也能夠快速發(fā)現,并自動解除隔離。
為了更清楚地理解本發(fā)明,下面以具體的實施例對上述流程進行詳細描述,具體步驟如圖4所示,包括:
步驟401、中心節(jié)點基于不同交易類型,將待檢測節(jié)點劃分集群,生成集群網絡拓撲圖。
針對交易類型為x的檢測消息,其對應網絡拓撲為:
gx={t1{a1,...,ama},t2{b1,...,bmb},...,tn{c1,...,cmc}}……公式1
其中t={t1,t2,...,tn}為處理檢測消息所需執(zhí)行的步驟集合,且當i>j時,ti先于tj執(zhí)行,{c1,...,cmc}為可執(zhí)行步驟tn的待檢測節(jié)點集合。網絡拓撲圖gx表示了交易x所覆蓋的最大集群集合。
步驟402、中心節(jié)點生成覆蓋所有待檢測節(jié)點的檢測消息發(fā)送計劃。其中,覆蓋全節(jié)點的發(fā)送計劃如下:
其中pi為覆蓋全節(jié)點的檢測消息id發(fā)送計劃,m=max(ma,mb,...,mc),即m為處理檢測消息的各步驟的待檢測節(jié)點數的最大值。公式2中,當i>mx(即i取值大于待檢測節(jié)點集群中節(jié)點個數)時,待檢測節(jié)點下標i取值替換為imodmx+1。
步驟403、中心節(jié)點根據覆蓋全節(jié)點的檢測消息發(fā)送計劃,向各待檢測節(jié)點發(fā)送檢測消息,并接收反饋結果。
步驟404、中心節(jié)點根據反饋結果判斷待檢測節(jié)點系統(tǒng)中是否存在異常節(jié)點,若是,執(zhí)行步驟405,否則結束檢測。
步驟405、中心節(jié)點確定存在異常節(jié)點的檢測消息的傳輸路徑中的待檢測節(jié)點為初篩節(jié)點,并生成覆蓋初篩節(jié)點的所有傳輸路徑的檢測消息發(fā)送計劃。其中,覆蓋全路徑的發(fā)送計劃如下:
其中,q為覆蓋全路徑的檢測消息id發(fā)送計劃,n=ma*mb*...*mc。
步驟406、中心節(jié)點根據覆蓋全路徑的檢測消息發(fā)送計劃,向各待檢測節(jié)點發(fā)送檢測消息,并接收反饋結果。
步驟407、中心節(jié)點根據步驟406中的反饋結果確定異常節(jié)點位置。
步驟408、中心節(jié)點將異常節(jié)點進行隔離。
圖5示例性示出了本發(fā)明實施例提供的一種故障定位裝置的結構示意圖。
如圖5所示,本發(fā)明實施例提供的一種故障定位裝置,包括:
第一發(fā)送模塊501,用于根據待檢測交易確定m個檢測消息,并向待檢測節(jié)點發(fā)送所述m個檢測消息;所述m個檢測消息的傳輸路徑覆蓋所有待檢測節(jié)點;
確定模塊502,用于針對所述m個檢測消息中的每個檢測消息,根據所述檢測消息相對應的反饋消息,確定存在異常節(jié)點的檢測消息;其中,所述反饋消息是根據所述檢測消息對應的待檢測節(jié)點的運行結果得到的;所述存在異常節(jié)點的檢測消息的傳輸路徑中的待檢測節(jié)點為初篩節(jié)點;
第二發(fā)送模塊503,用于根據所述初篩節(jié)點確定n個檢測消息,并向所述初篩節(jié)點發(fā)送所述n個檢測消息;所述n個檢測消息的傳輸路徑覆蓋所述初篩節(jié)點的所有傳輸路徑;
定位模塊504,用于針對所述n個檢測消息中的每個檢測消息,根據所述檢測消息相對應的反饋消息,確定異常節(jié)點。
可選的,還包括劃分模塊505,用于基于不同交易類型,將所有待檢測節(jié)點劃分為不同的集群,同一個集群中的待檢測節(jié)點處理同一交易類型的消息;
所述第一發(fā)送模塊501,具體用于針對一個集群,向所述集群中的待檢測節(jié)點發(fā)送所述m個檢測消息;
所述第二發(fā)送模塊503,具體用于針對一個集群,向所述集群中的初篩節(jié)點發(fā)送所述n個檢測消息。
可選的,還包括處理模塊506,用于:
將所述異常節(jié)點的狀態(tài)設置為隔離狀態(tài)。
可選的,所述處理模塊506,還用于:
向所述異常節(jié)點發(fā)送檢測消息,根據所述檢測消息相對應的反饋消息確定所述異常節(jié)點已恢復正常,則解除所述異常節(jié)點隔離狀態(tài)。
可選的,所述確定模塊502,具體用于:
針對所述m個檢測消息中的任一檢測消息,在閾值時間內未收到所述檢測消息對應的反饋消息,或所述檢測消息對應的反饋消息為錯誤消息,則確定存在異常節(jié)點。
可選的,所述定位模塊504,具體用于:
針對經過第一待檢測節(jié)點的所有檢測消息相對應的反饋消息,在所述閾值時間內均未收到所述反饋消息,或所述反饋消息均為錯誤消息,則確定所述第一待檢測節(jié)點為異常節(jié)點。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包括這些改動和變型在內。