本技術(shù)涉及通信,特別是涉及一種故障定位方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、微服務(wù)(或稱微服務(wù)架構(gòu))是一種云原生架構(gòu)方法,在單個(gè)應(yīng)用中包含眾多松散耦合且可單獨(dú)部署的小型組件或微服務(wù),這些服務(wù)相互獨(dú)立,因此,基于微服務(wù)架構(gòu)的應(yīng)用的代碼更新更加容易,即可以通過(guò)微服務(wù)直接添加新特性或功能,而不必更新整個(gè)應(yīng)用。
2、然而,基于微服務(wù)架構(gòu)的應(yīng)用,一次請(qǐng)求可能需要調(diào)用多個(gè)服務(wù),例如圖1所示,該應(yīng)用的一個(gè)接口被調(diào)用時(shí),該接口需要調(diào)用服務(wù)a和服務(wù)b,服務(wù)a進(jìn)一步需要調(diào)用服務(wù)c和服務(wù)d;此種情況下,這些被調(diào)用的任何一個(gè)服務(wù)出現(xiàn)故障,都會(huì)導(dǎo)致這次請(qǐng)求出現(xiàn)問(wèn)題,例如反應(yīng)到應(yīng)用的客戶端上則可能表現(xiàn)為:提示請(qǐng)求超時(shí)。
3、其中,一次請(qǐng)求涉及多個(gè)服務(wù)的調(diào)用,在出現(xiàn)故障時(shí),為了解決該故障,目前需要相關(guān)人員對(duì)各個(gè)服務(wù)依次排查,進(jìn)行代碼分析,整個(gè)過(guò)程耗時(shí)較長(zhǎng)而且故障定位的難度較大。
4、由此可知,目前基于微服務(wù)架構(gòu)的應(yīng)用,一次請(qǐng)求需要調(diào)用多個(gè)服務(wù)時(shí),定位故障服務(wù)的難度大且耗時(shí)長(zhǎng)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供一種故障定位方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),以解決一次請(qǐng)求需要調(diào)用多個(gè)服務(wù)時(shí)定位故障的難度大且耗時(shí)長(zhǎng)的問(wèn)題。
2、第一方面,本技術(shù)實(shí)施例提供一種故障定位方法,所述方法包括:
3、在第一節(jié)點(diǎn)被調(diào)用時(shí),獲取所述第一節(jié)點(diǎn)的第一信息,其中,所述第一節(jié)點(diǎn)為調(diào)用鏈路中的任意一個(gè)節(jié)點(diǎn),所述第一節(jié)點(diǎn)的第一信息包括所述第一節(jié)點(diǎn)被調(diào)用時(shí)采集的第一鏈路數(shù)據(jù)、所述第一節(jié)點(diǎn)的第一參數(shù)信息、所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)的第二參數(shù)信息;
4、在所述第一節(jié)點(diǎn)調(diào)用第二節(jié)點(diǎn)時(shí),獲取所述第一節(jié)點(diǎn)的第二信息,其中,所述第二節(jié)點(diǎn)為所述調(diào)用鏈路上所述第一節(jié)點(diǎn)的其中一個(gè)子節(jié)點(diǎn),所述第一節(jié)點(diǎn)的第二信息包括所述第一節(jié)點(diǎn)調(diào)用所述第二節(jié)點(diǎn)時(shí)采集的第二鏈路數(shù)據(jù)、所述第一節(jié)點(diǎn)的第三參數(shù)信息;其中,所述第一節(jié)點(diǎn)調(diào)用所述第二節(jié)點(diǎn)時(shí),所述第二節(jié)點(diǎn)獲取所述第二節(jié)點(diǎn)的第一信息,并向目標(biāo)服務(wù)器發(fā)送所述第二節(jié)點(diǎn)的第一信息;
5、向所述目標(biāo)服務(wù)器發(fā)送所述第一節(jié)點(diǎn)的第一信息和所述第一節(jié)點(diǎn)的第二信息,以使得所述目標(biāo)服務(wù)器根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息包括的節(jié)點(diǎn)的參數(shù)信息,確定所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的調(diào)用關(guān)系,根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的鏈路數(shù)據(jù)確定故障節(jié)點(diǎn),并根據(jù)所述調(diào)用關(guān)系和所述故障節(jié)點(diǎn)確定導(dǎo)致故障的源頭節(jié)點(diǎn);
6、其中,所述第一節(jié)點(diǎn)、所述第二節(jié)點(diǎn)均為微服務(wù)架構(gòu)中的節(jié)點(diǎn),節(jié)點(diǎn)的參數(shù)信息用于標(biāo)識(shí)節(jié)點(diǎn),鏈路數(shù)據(jù)表示節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
7、第二方面,本技術(shù)實(shí)施例提供一種故障定位方法,所述方法包括:
8、接收調(diào)用鏈路上的各個(gè)節(jié)點(diǎn)的第一信息和第二信息,其中,所述第一信息包括當(dāng)前節(jié)點(diǎn)被調(diào)用時(shí)采集的第一鏈路數(shù)據(jù)、當(dāng)前節(jié)點(diǎn)的第一參數(shù)信息、當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)的第二參數(shù)信息,所述第二信息包括當(dāng)前節(jié)點(diǎn)調(diào)用其子節(jié)點(diǎn)時(shí)采集的第二鏈路數(shù)據(jù)、當(dāng)前節(jié)點(diǎn)的第三參數(shù)信息;
9、根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的節(jié)點(diǎn)的參數(shù)信息,確定所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的調(diào)用關(guān)系;
10、根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的鏈路數(shù)據(jù)確定故障節(jié)點(diǎn);
11、根據(jù)所述調(diào)用關(guān)系和所述故障節(jié)點(diǎn)確定導(dǎo)致故障的源頭節(jié)點(diǎn);
12、其中,所述調(diào)用鏈路上的節(jié)點(diǎn)為微服務(wù)架構(gòu)中的節(jié)點(diǎn),節(jié)點(diǎn)的參數(shù)信息用于標(biāo)識(shí)節(jié)點(diǎn),鏈路數(shù)據(jù)表示節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
13、第三方面,本技術(shù)實(shí)施例提供一種故障定位裝置,所述裝置包括:
14、第一獲取模塊,用于在第一節(jié)點(diǎn)被調(diào)用時(shí),獲取所述第一節(jié)點(diǎn)的第一信息,其中,所述第一節(jié)點(diǎn)為調(diào)用鏈路中的任意一個(gè)節(jié)點(diǎn),所述第一節(jié)點(diǎn)的第一信息包括所述第一節(jié)點(diǎn)被調(diào)用時(shí)采集的第一鏈路數(shù)據(jù)、所述第一節(jié)點(diǎn)的第一參數(shù)信息、所述第一節(jié)點(diǎn)的父節(jié)點(diǎn)的第二參數(shù)信息;
15、第二獲取模塊,用于在所述第一節(jié)點(diǎn)調(diào)用第二節(jié)點(diǎn)時(shí),獲取所述第一節(jié)點(diǎn)的第二信息,其中,所述第二節(jié)點(diǎn)為所述調(diào)用鏈路上所述第一節(jié)點(diǎn)的其中一個(gè)子節(jié)點(diǎn),所述第一節(jié)點(diǎn)的第二信息包括所述第一節(jié)點(diǎn)調(diào)用所述第二節(jié)點(diǎn)時(shí)采集的第二鏈路數(shù)據(jù)、所述第一節(jié)點(diǎn)的第三參數(shù)信息;其中,所述第一節(jié)點(diǎn)調(diào)用所述第二節(jié)點(diǎn)時(shí),所述第二節(jié)點(diǎn)獲取所述第二節(jié)點(diǎn)的第一信息,并向目標(biāo)服務(wù)器發(fā)送所述第二節(jié)點(diǎn)的第一信息;
16、第一發(fā)送模塊,用于向所述目標(biāo)服務(wù)器發(fā)送所述第一節(jié)點(diǎn)的第一信息和所述第一節(jié)點(diǎn)的第二信息,以使得所述目標(biāo)服務(wù)器根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息包括的節(jié)點(diǎn)的參數(shù)信息,確定所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的調(diào)用關(guān)系,根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的鏈路數(shù)據(jù)確定故障節(jié)點(diǎn),并根據(jù)所述調(diào)用關(guān)系和所述故障節(jié)點(diǎn)確定導(dǎo)致故障的源頭節(jié)點(diǎn);
17、其中,所述第一節(jié)點(diǎn)、所述第二節(jié)點(diǎn)均為微服務(wù)架構(gòu)中的節(jié)點(diǎn),節(jié)點(diǎn)的參數(shù)信息用于標(biāo)識(shí)節(jié)點(diǎn),鏈路數(shù)據(jù)表示節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
18、第四方面,本技術(shù)實(shí)施例提供一種故障定位裝置,所述裝置包括:
19、第一接收模塊,用于接收調(diào)用鏈路上的各個(gè)節(jié)點(diǎn)的第一信息和第二信息,其中,所述第一信息包括當(dāng)前節(jié)點(diǎn)被調(diào)用時(shí)采集的第一鏈路數(shù)據(jù)、當(dāng)前節(jié)點(diǎn)的第一參數(shù)信息、當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)的第二參數(shù)信息,所述第二信息包括當(dāng)前節(jié)點(diǎn)調(diào)用其子節(jié)點(diǎn)時(shí)采集的第二鏈路數(shù)據(jù)、當(dāng)前節(jié)點(diǎn)的第三參數(shù)信息;
20、第一確定模塊,用于根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的節(jié)點(diǎn)的參數(shù)信息,確定所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的調(diào)用關(guān)系;
21、第二確定模塊,用于根據(jù)所述調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的鏈路數(shù)據(jù)確定故障節(jié)點(diǎn);
22、第三確定模塊,用于根據(jù)所述調(diào)用關(guān)系和所述故障節(jié)點(diǎn)確定導(dǎo)致故障的源頭節(jié)點(diǎn);
23、其中,所述調(diào)用鏈路上的節(jié)點(diǎn)為微服務(wù)架構(gòu)中的節(jié)點(diǎn),節(jié)點(diǎn)的參數(shù)信息用于標(biāo)識(shí)節(jié)點(diǎn),鏈路數(shù)據(jù)表示節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
24、第五方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面或者第二方面所述的故障定位方法的步驟。
25、第六方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面或第二方面所述的故障定位方法的步驟。
26、本技術(shù)實(shí)施例的技術(shù)方案中,在第一節(jié)點(diǎn)被調(diào)用時(shí),可以獲取第一節(jié)點(diǎn)的第一信息,在第一節(jié)點(diǎn)調(diào)用第二節(jié)點(diǎn)時(shí),可以獲取第一節(jié)點(diǎn)的第二信息,從而向目標(biāo)服務(wù)器發(fā)送第一節(jié)點(diǎn)的第一信息和第一節(jié)點(diǎn)的第二信息;其中,第一節(jié)點(diǎn)調(diào)用第二節(jié)點(diǎn)時(shí),第二節(jié)點(diǎn)可以獲取第二節(jié)點(diǎn)的第一信息,從而向目標(biāo)服務(wù)器發(fā)送第二節(jié)點(diǎn)的第一信息;其中,第一節(jié)點(diǎn)為調(diào)用鏈路中的其中一個(gè)節(jié)點(diǎn),第二節(jié)點(diǎn)為第一節(jié)點(diǎn)的其中一個(gè)子節(jié)點(diǎn),第一節(jié)點(diǎn)的第一信息包括第一節(jié)點(diǎn)被調(diào)用時(shí)采集的第一鏈路數(shù)據(jù)、第一節(jié)點(diǎn)的第一參數(shù)信息、第一節(jié)點(diǎn)的父節(jié)點(diǎn)的第二參數(shù)信息,第一節(jié)點(diǎn)的第二信息包括第一節(jié)點(diǎn)調(diào)用第二節(jié)點(diǎn)時(shí)采集的第二鏈路數(shù)據(jù)、第一節(jié)點(diǎn)的第三參數(shù)信息;以使得目標(biāo)服務(wù)器根據(jù)調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息包括的節(jié)點(diǎn)的參數(shù)信息,確定調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的調(diào)用關(guān)系,根據(jù)調(diào)用鏈路上各個(gè)節(jié)點(diǎn)的第一信息和第二信息中包括的鏈路數(shù)據(jù)確定故障節(jié)點(diǎn),并根據(jù)調(diào)用關(guān)系和故障節(jié)點(diǎn)確定導(dǎo)致故障的源頭節(jié)點(diǎn);其中,第一節(jié)點(diǎn)、第二節(jié)點(diǎn)均為微服務(wù)架構(gòu)中的節(jié)點(diǎn),節(jié)點(diǎn)的參數(shù)信息用于標(biāo)識(shí)節(jié)點(diǎn),鏈路數(shù)據(jù)表示節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
27、由此可知,在本發(fā)明的實(shí)施例中,在微服務(wù)架構(gòu)中,調(diào)用鏈路中的其中任何一個(gè)節(jié)點(diǎn),在被調(diào)用時(shí),可以向目標(biāo)服務(wù)器上報(bào)其被調(diào)用時(shí)的鏈路數(shù)據(jù)以及自身的參數(shù)信息和其父節(jié)點(diǎn)的參數(shù)信息,在一個(gè)節(jié)點(diǎn)調(diào)用其任一子節(jié)點(diǎn)時(shí),可以向目標(biāo)服務(wù)器上報(bào)其調(diào)用該子節(jié)點(diǎn)時(shí)的鏈路數(shù)據(jù)以及自身的參數(shù)信息;這樣,在微服務(wù)架構(gòu)中,調(diào)用鏈路的整個(gè)調(diào)用過(guò)程中的鏈路數(shù)據(jù)和節(jié)點(diǎn)的參數(shù)信息,節(jié)點(diǎn)的父節(jié)點(diǎn)的參數(shù)信息都可以上報(bào)至目標(biāo)服務(wù)器,目標(biāo)服務(wù)器則可以根據(jù)節(jié)點(diǎn)的參數(shù)信息和節(jié)點(diǎn)的父節(jié)點(diǎn)的參數(shù)信息,構(gòu)建調(diào)用鏈路上各個(gè)節(jié)點(diǎn)之間的調(diào)用關(guān)系,根據(jù)鏈路數(shù)據(jù)確定故障節(jié)點(diǎn),進(jìn)而基于該調(diào)用關(guān)系和故障節(jié)點(diǎn)快速定位導(dǎo)致故障的源頭節(jié)點(diǎn),整個(gè)過(guò)程不需要人工分析,降低了故障定位難度,縮短了耗時(shí)。
28、因此,本發(fā)明的實(shí)施例,可以解決現(xiàn)有技術(shù)中基于微服務(wù)架構(gòu)的應(yīng)用,一次請(qǐng)求需要調(diào)用多個(gè)服務(wù)時(shí),定位故障服務(wù)的難度大且耗時(shí)長(zhǎng)的問(wèn)題。