本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò),尤其涉及一種拓?fù)涔?jié)點(diǎn)變化追蹤的方法、系統(tǒng)及設(shè)備。
背景技術(shù):
1、在云計(jì)算、大數(shù)據(jù)等技術(shù)日趨成熟的情況下,微服務(wù)架構(gòu)逐漸進(jìn)入人們的視線。全鏈路性能監(jiān)控在微服務(wù)架構(gòu)中扮演重要角色,全鏈路性能監(jiān)控覆蓋移動(dòng)端、網(wǎng)絡(luò)端和服務(wù)端,全面統(tǒng)計(jì)各端應(yīng)用的業(yè)務(wù)請(qǐng)求的性能指標(biāo)。通過拓?fù)鋱D展示應(yīng)用之間的關(guān)聯(lián)關(guān)系和調(diào)用鏈,拓?fù)鋱D中每個(gè)節(jié)點(diǎn)代表一個(gè)服務(wù)或應(yīng)用實(shí)例,節(jié)點(diǎn)間的連線表示服務(wù)或應(yīng)用間的調(diào)用關(guān)系。借助拓?fù)鋱D,運(yùn)維人員可以快速識(shí)別應(yīng)用的性能瓶頸、故障點(diǎn)和依賴關(guān)系。
2、然而,隨著服務(wù)或應(yīng)用版本的更新或者故障,導(dǎo)致拓?fù)鋱D中節(jié)點(diǎn)隨之發(fā)生變化,在海量拓?fù)鋽?shù)據(jù)的場(chǎng)景中,相關(guān)技術(shù)中查詢應(yīng)用拓?fù)潢P(guān)系的計(jì)算資源和查詢時(shí)間開銷大,難以高效追蹤拓?fù)涔?jié)點(diǎn)變化并實(shí)現(xiàn)實(shí)時(shí)查詢比對(duì)。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提出了一種拓?fù)涔?jié)點(diǎn)變化追蹤的方法、系統(tǒng)及設(shè)備,解決了拓?fù)涔?jié)點(diǎn)變化追蹤過程中出現(xiàn)的計(jì)算資源開銷大、效率低和性能差等問題,實(shí)現(xiàn)高性能地實(shí)時(shí)追蹤拓?fù)涔?jié)點(diǎn)變化以及按需比對(duì)拓?fù)涔?jié)點(diǎn)變化。
2、基于上述目的,本發(fā)明實(shí)施例的一方面提供了一種拓?fù)涔?jié)點(diǎn)變化追蹤的方法,具體包括如下步驟:
3、響應(yīng)于接收到拓?fù)潢P(guān)系查詢請(qǐng)求,獲取所述拓?fù)潢P(guān)系查詢請(qǐng)求對(duì)應(yīng)的中心節(jié)點(diǎn)和若干目標(biāo)查詢?nèi)掌冢?/p>
4、基于所述中心節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)應(yīng)用標(biāo)識(shí),確定目標(biāo)哈希碼;
5、基于所述目標(biāo)哈希碼和若干所述目標(biāo)查詢?nèi)掌?,在預(yù)設(shè)數(shù)據(jù)庫(kù)表中查詢差異哈希碼數(shù)組;
6、基于所述差異哈希碼數(shù)組,確定所述中心節(jié)點(diǎn)對(duì)應(yīng)的拓?fù)潢P(guān)系中的變化節(jié)點(diǎn)。
7、在一些實(shí)施方式中,所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法還包括:
8、響應(yīng)于接收到探針發(fā)送的若干請(qǐng)求數(shù)據(jù),針對(duì)每個(gè)所述請(qǐng)求數(shù)據(jù),提取其中的第一應(yīng)用標(biāo)識(shí),并將所述第一應(yīng)用標(biāo)識(shí)轉(zhuǎn)換得到第一哈希碼;
9、判斷第一緩存中是否存在所述第一應(yīng)用標(biāo)識(shí);
10、響應(yīng)于第一緩存中存在所述第一應(yīng)用標(biāo)識(shí),以所述請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的追蹤標(biāo)識(shí)作為鍵字段,將轉(zhuǎn)換后的所述請(qǐng)求數(shù)據(jù)作為值字段,存儲(chǔ)至第二緩存,并觸發(fā)所述追蹤標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)定時(shí)器;
11、響應(yīng)于所述第二緩存接收到所述追蹤標(biāo)識(shí),基于所述預(yù)設(shè)定時(shí)器檢查所述追蹤標(biāo)識(shí)對(duì)應(yīng)的所有轉(zhuǎn)換后的所述請(qǐng)求數(shù)據(jù)是否全部緩存;
12、響應(yīng)于對(duì)應(yīng)的所有轉(zhuǎn)換后的所述請(qǐng)求數(shù)據(jù)全部緩存,對(duì)其中的第一哈希碼進(jìn)行去重得到第一數(shù)組,按照預(yù)設(shè)格式轉(zhuǎn)換所述第一數(shù)組得到位圖字段;
13、基于所有位圖字段,構(gòu)建所述預(yù)設(shè)數(shù)據(jù)庫(kù)表,其中,所述預(yù)設(shè)數(shù)據(jù)庫(kù)表中的所有位圖字段根據(jù)請(qǐng)求數(shù)據(jù)的時(shí)間戳分區(qū)存儲(chǔ)。
14、在一些實(shí)施方式中,若干所述目標(biāo)查詢?nèi)掌诎ǖ谝荒繕?biāo)查詢?nèi)掌诤偷诙繕?biāo)查詢?nèi)掌冢?/p>
15、所述基于所述目標(biāo)哈希碼和若干所述目標(biāo)查詢?nèi)掌?,在預(yù)設(shè)數(shù)據(jù)庫(kù)表中查詢差異哈希碼數(shù)組的步驟,包括:
16、在預(yù)設(shè)數(shù)據(jù)庫(kù)表中,查詢時(shí)間戳與所述第一目標(biāo)查詢?nèi)掌谄ヅ淝野瞿繕?biāo)哈希碼的第一位圖字段;
17、在預(yù)設(shè)數(shù)據(jù)庫(kù)表中,查詢時(shí)間戳與所述第二目標(biāo)查詢?nèi)掌谄ヅ淝野瞿繕?biāo)哈希碼的第二位圖字段;
18、對(duì)所述第一位圖字段和所述第二位圖字段進(jìn)行異或處理,以生成所述差異哈希碼數(shù)組。
19、在一些實(shí)施方式中,所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法還包括:
20、響應(yīng)于所述探針采集到若干業(yè)務(wù)請(qǐng)求,針對(duì)每個(gè)所述業(yè)務(wù)請(qǐng)求,將其對(duì)應(yīng)的調(diào)用關(guān)系、追蹤標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)封裝為請(qǐng)求數(shù)據(jù);
21、批量發(fā)送所有所述請(qǐng)求數(shù)據(jù)。
22、在一些實(shí)施方式中,所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法還包括:
23、響應(yīng)于對(duì)應(yīng)的所有轉(zhuǎn)換后的所述請(qǐng)求數(shù)據(jù)未全部緩存,重置對(duì)應(yīng)的所述預(yù)設(shè)定時(shí)器。
24、在一些實(shí)施方式中,所述基于所述差異哈希碼數(shù)組,確定所述中心節(jié)點(diǎn)對(duì)應(yīng)的拓?fù)潢P(guān)系中的變化節(jié)點(diǎn)的步驟,包括:
25、判斷所述差異哈希碼數(shù)組是否為空;
26、響應(yīng)于所述差異哈希碼數(shù)組不為空,在預(yù)設(shè)對(duì)應(yīng)關(guān)系表中,查詢所述差異哈希碼數(shù)組中各異常哈希碼分別對(duì)應(yīng)的異常應(yīng)用標(biāo)識(shí),將各所述異常應(yīng)用標(biāo)識(shí)對(duì)應(yīng)的應(yīng)用分別作為所述變化節(jié)點(diǎn)。
27、在一些實(shí)施方式中,所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法還包括:
28、響應(yīng)于第一緩存中不存在所述第一應(yīng)用標(biāo)識(shí),以所述第一應(yīng)用標(biāo)識(shí)作為鍵字段,以第一哈希碼作為值字段,存儲(chǔ)所述鍵字段和所述值字段至所述第一緩存;
29、基于所述鍵字段和所述值字段,構(gòu)建所述預(yù)設(shè)對(duì)應(yīng)關(guān)系表。
30、在一些實(shí)施方式中,所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法還包括:
31、響應(yīng)于接收到用戶輸入的待查詢應(yīng)用,判斷用戶輸入中是否存在若干待查詢?nèi)掌冢?/p>
32、響應(yīng)于用戶輸入中不存在若干待查詢?nèi)掌冢瑢⒔邮盏接脩糨斎氲漠?dāng)前日期及其前一個(gè)日期分別作為所述目標(biāo)查詢?nèi)掌冢?/p>
33、響應(yīng)于用戶輸入中存在若干待查詢?nèi)掌?,將各所述待查詢?nèi)掌诜謩e作為所述目標(biāo)查詢?nèi)掌冢?/p>
34、以所述待查詢應(yīng)用作為所述中心節(jié)點(diǎn),發(fā)送包括所述中心節(jié)點(diǎn)和若干目標(biāo)查詢?nèi)掌诘乃鐾負(fù)潢P(guān)系查詢請(qǐng)求,其中所述待查詢應(yīng)用對(duì)應(yīng)的應(yīng)用標(biāo)識(shí)作為所述目標(biāo)應(yīng)用標(biāo)識(shí)。
35、本發(fā)明實(shí)施例的另一方面,還提供了一種拓?fù)涔?jié)點(diǎn)變化追蹤的系統(tǒng),包括:
36、獲取單元,配置用于響應(yīng)于接收到拓?fù)潢P(guān)系查詢請(qǐng)求,獲取所述拓?fù)潢P(guān)系查詢請(qǐng)求對(duì)應(yīng)的中心節(jié)點(diǎn)和若干目標(biāo)查詢?nèi)掌冢?/p>
37、確定單元,配置用于基于所述中心節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)應(yīng)用標(biāo)識(shí),確定目標(biāo)哈希碼;
38、查詢單元,配置用于基于所述目標(biāo)哈希碼和若干所述目標(biāo)查詢?nèi)掌?,查詢得到差異哈希碼數(shù)組;
39、追蹤單元,配置用于基于所述差異哈希碼數(shù)組,確定所述中心節(jié)點(diǎn)對(duì)應(yīng)的拓?fù)潢P(guān)系中的變化節(jié)點(diǎn)。
40、本發(fā)明實(shí)施例的又一方面,還提供了一種計(jì)算機(jī)設(shè)備,包括:至少一個(gè)處理器;以及存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序由所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如上方法的步驟。
41、本發(fā)明至少具有以下有益技術(shù)效果:本發(fā)明的一種拓?fù)涔?jié)點(diǎn)變化追蹤的方法,通過在預(yù)設(shè)數(shù)據(jù)庫(kù)表中以roaringbitmap數(shù)據(jù)結(jié)構(gòu)作為預(yù)設(shè)格式來存儲(chǔ)整個(gè)分布式業(yè)務(wù)請(qǐng)求中所有關(guān)聯(lián)節(jié)點(diǎn)數(shù)據(jù),即位圖字段,實(shí)現(xiàn)以較小的存儲(chǔ)空間和較高的效率處理和存儲(chǔ)拓?fù)浣Y(jié)構(gòu)信息,在拓?fù)潢P(guān)系查詢階段,將目標(biāo)應(yīng)用標(biāo)識(shí)轉(zhuǎn)換為目標(biāo)哈希碼,以在預(yù)設(shè)數(shù)據(jù)庫(kù)中根據(jù)目標(biāo)哈希碼快速獲取不同查詢?nèi)掌趯?duì)應(yīng)的位圖字段,通過比較位圖字段的差異,來確定拓?fù)潢P(guān)系中拓?fù)涔?jié)點(diǎn)的變化情況,解決了拓?fù)涔?jié)點(diǎn)變化追蹤過程中出現(xiàn)的計(jì)算資源開銷大、效率低和性能差等問題,實(shí)現(xiàn)高性能地實(shí)時(shí)追蹤拓?fù)涔?jié)點(diǎn)變化以及按需比對(duì)拓?fù)涔?jié)點(diǎn)變化,幫助運(yùn)維人員預(yù)警可能的應(yīng)用故障。
1.一種拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,還包括:
3.根據(jù)權(quán)利要求1所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,若干所述目標(biāo)查詢?nèi)掌诎ǖ谝荒繕?biāo)查詢?nèi)掌诤偷诙繕?biāo)查詢?nèi)掌冢?/p>
4.根據(jù)權(quán)利要求2所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,還包括:
5.根據(jù)權(quán)利要求2所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,還包括:
6.根據(jù)權(quán)利要求2所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,所述基于所述差異哈希碼數(shù)組,確定所述中心節(jié)點(diǎn)對(duì)應(yīng)的拓?fù)潢P(guān)系中的變化節(jié)點(diǎn)的步驟,包括:
7.根據(jù)權(quán)利要求6所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,還包括:
8.根據(jù)權(quán)利要求1所述的拓?fù)涔?jié)點(diǎn)變化追蹤的方法,其特征在于,還包括:
9.一種拓?fù)涔?jié)點(diǎn)變化追蹤的系統(tǒng),其特征在于,包括:
10.?一種計(jì)算機(jī)設(shè)備,包括: