本發(fā)明涉及一種微服務(wù)軟件架構(gòu)中接口依賴管理方法及系統(tǒng),屬于接口管理。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,分布式應(yīng)用架構(gòu)因其高可用性、可擴(kuò)展性和靈活性而被廣泛采用,然而,在分布式系統(tǒng)中,各個服務(wù)之間通過接口進(jìn)行交互,這種松耦合的設(shè)計模式雖然帶來了諸多好處,但也帶來了服務(wù)接口依賴管理的挑戰(zhàn),傳統(tǒng)的依賴管理方式往往無法滿足分布式環(huán)境下動態(tài)變化的需求,導(dǎo)致服務(wù)間通信故障難以定位,影響系統(tǒng)的穩(wěn)定性和用戶體驗(yàn),主要存在以下問題:微服務(wù)之間接口高耦合:雖然微服務(wù)架構(gòu)對大型單體應(yīng)用進(jìn)行了拆分,但是微服務(wù)之間的接口調(diào)用錯綜復(fù)雜,會導(dǎo)致微服務(wù)之間的耦合的很高;接口調(diào)用限制管理松散:目前微服務(wù)架構(gòu)下一般是共享一個中心化的服務(wù)注冊和發(fā)現(xiàn)中心,某個微服務(wù)暴露的接口,在注冊與發(fā)現(xiàn)中心下的所有微服務(wù)和客戶端都可以直接調(diào)用,導(dǎo)致接口使用限制管理松散薄弱;接口變更影響難以掌控:目前微服務(wù)架構(gòu)下,由于微服務(wù)暴漏的接口調(diào)用限制未集中管理,導(dǎo)致服務(wù)接口提供者并不知道某個接口存才哪些調(diào)用者,如果接口被修改,則對周邊微服務(wù)影響難以掌控。因此,微服務(wù)接口的高耦合、接口限制薄弱及異常難以掌控的問題亟待解決。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種微服務(wù)軟件架構(gòu)中接口依賴管理方法及系統(tǒng),其主要目的在于減少微服務(wù)接口的高耦合、接口限制薄弱及異常難以掌控的問題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種微服務(wù)軟件架構(gòu)中接口依賴管理方法,包括:
3、獲取微服務(wù)軟件架構(gòu)中待管理接口的接口代碼,利用所述接口代碼分析所述待管理接口中每個待管理接口之間的接口依賴關(guān)系,基于所述接口依賴關(guān)系,構(gòu)建所述待管理接口中每個待管理接口之間的接口依賴映射;
4、獲取所述接口依賴映射的白名單用戶與當(dāng)前用戶,收集所述白名單用戶對所述接口依賴映射的歷史使用日志,識別所述當(dāng)前用戶對所述接口依賴映射的當(dāng)前使用日志,基于所述歷史使用日志與所述當(dāng)前使用日志,對所述接口依賴映射進(jìn)行安全性管理,得到安全管理結(jié)果;
5、獲取所述微服務(wù)軟件架構(gòu)的新版本產(chǎn)品,查詢所述新版本產(chǎn)品的服務(wù)依賴映射,檢測所述接口依賴映射與所述服務(wù)依賴映射之間是否存在合并沖突,以完成對所述接口依賴映射的兼容管理,得到兼容管理結(jié)果;
6、采集所述接口依賴映射的接口依賴指標(biāo),對所述接口依賴指標(biāo)進(jìn)行指標(biāo)賦權(quán),得到所述接口依賴指標(biāo)的指標(biāo)權(quán)重,利用所述接口依賴指標(biāo)與所述指標(biāo)權(quán)重計算所述接口依賴映射的健康得分,通過所述健康得分對所述接口依賴映射進(jìn)行健康監(jiān)測,得到健康監(jiān)測結(jié)果;
7、在所述健康得分低于預(yù)設(shè)得分時,獲取所述接口依賴映射的應(yīng)急措施,分析所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果,根據(jù)所述應(yīng)急效果,執(zhí)行所述應(yīng)急措施,以完成對所述接口依賴映射的健康管理,得到健康管理結(jié)果;
8、將所述接口依賴映射、所述安全管理結(jié)果、所述兼容管理結(jié)果、所述健康監(jiān)測結(jié)果及所述健康管理結(jié)果作為所述微服務(wù)軟件架構(gòu)的接口依賴管理結(jié)果。
9、可選的,所述利用所述接口代碼分析所述待管理接口中每個待管理接口之間的接口依賴關(guān)系,包括:
10、識別所述接口代碼中每個接口代碼之間的代碼調(diào)用關(guān)系;
11、識別所述接口代碼中屬于同一待管理接口的目標(biāo)代碼;
12、利用所述代碼調(diào)用關(guān)系查詢所述目標(biāo)代碼的代碼間斷點(diǎn);
13、根據(jù)所述代碼間斷點(diǎn),利用下述格式生成所述待管理接口中每個待管理接口之間的接口依賴關(guān)系:
14、;
15、;
16、;
17、;
18、;
19、其中,表示接口依賴關(guān)系,表示第個待管理接口,表示第個待管理接口的目標(biāo)代碼,、表示第個待管理接口的目標(biāo)代碼的代碼間斷點(diǎn),表示第個待管理接口,表示第個待管理接口,表示第個待管理接口的目標(biāo)代碼,表示第個待管理接口的目標(biāo)代碼,表示接口代碼的代碼調(diào)用關(guān)系的長度,表示、、之間的代碼調(diào)用關(guān)系。
20、可選的,所述識別所述接口代碼中每個接口代碼之間的代碼調(diào)用關(guān)系,包括:
21、根據(jù)所述接口代碼中的返回語句、賦值語句、控制語句及函數(shù)調(diào)用語句,識別所述接口代碼中每個接口代碼之間的直接調(diào)用關(guān)系;
22、從所述直接調(diào)用關(guān)系中識別所述接口代碼中每個接口代碼之間的間接調(diào)用關(guān)系;
23、將所述直接調(diào)用關(guān)系與所述間接調(diào)用關(guān)系作為代碼調(diào)用關(guān)系。
24、可選的,所述基于所述接口依賴關(guān)系,構(gòu)建所述待管理接口中每個待管理接口之間的接口依賴映射,包括:
25、基于所述接口依賴關(guān)系,確定所述待管理接口中每個待管理接口的輸入端、輸出端及依賴接口;
26、根據(jù)所述輸入端、所述輸出端及所述依賴接口,建立所述待管理接口中每個待管理接口之間的依賴關(guān)系映射圖;
27、將所述依賴關(guān)系映射圖作為所述待管理接口中每個待管理接口之間的接口依賴映射。
28、可選的,所述基于所述歷史使用日志與所述當(dāng)前使用日志,對所述接口依賴映射進(jìn)行安全性管理,得到安全管理結(jié)果,包括:
29、利用下述公式將所述歷史使用日志轉(zhuǎn)換為歷史向量:
30、;
31、其中,表示歷史向量,表示歷史使用日志,表示基于深度學(xué)習(xí)的自然語言處理模型;
32、將所述當(dāng)前使用日志轉(zhuǎn)換為當(dāng)前向量;
33、計算所述歷史向量與所述當(dāng)前向量之間的向量相似度;
34、在所述向量相似度大于預(yù)設(shè)相似度時,判定所述接口依賴映射處于安全狀態(tài),并基于所述安全狀態(tài)保持對所述接口依賴映射的安全監(jiān)測,得到第一安全管理結(jié)果;
35、在所述向量相似度不大于預(yù)設(shè)相似度時,判定所述接口依賴映射處于非安全狀態(tài),并基于所述非安全狀態(tài)對所述當(dāng)前使用日志對應(yīng)的當(dāng)前用戶進(jìn)行限制訪問,得到第二安全管理結(jié)果。
36、可選的,所述檢測所述接口依賴映射與所述服務(wù)依賴映射之間是否存在合并沖突,包括:
37、分別獲取所述接口依賴映射與所述服務(wù)依賴映射的接口依賴代碼與服務(wù)依賴代碼;
38、利用下述公式將所述接口依賴代碼轉(zhuǎn)換為接口依賴向量:
39、;
40、其中,表示接口依賴向量,表示接口依賴代碼,表示基于深度學(xué)習(xí)的代碼語言處理模型;
41、將所述服務(wù)依賴代碼轉(zhuǎn)換為服務(wù)依賴向量;
42、隨機(jī)組合所述接口依賴向量與所述服務(wù)依賴向量,得到組合向量;
43、構(gòu)建所述組合向量的馬爾可夫鏈庫;
44、根據(jù)所述馬爾可夫鏈庫,計算所述組合向量對應(yīng)的馬爾可夫概率;
45、在所述馬爾可夫概率大于預(yù)設(shè)概率值時,判定所述接口依賴映射與所述服務(wù)依賴映射之間不存在合并沖突;
46、在所述馬爾可夫概率不大于預(yù)設(shè)概率值時,判定所述接口依賴映射與所述服務(wù)依賴映射之間存在合并沖突。
47、可選的,所述對所述接口依賴指標(biāo)進(jìn)行指標(biāo)賦權(quán),得到所述接口依賴指標(biāo)的指標(biāo)權(quán)重,包括:
48、識別所述接口依賴指標(biāo)中的正向指標(biāo)與負(fù)向指標(biāo);
49、分別對所述正向指標(biāo)與所述負(fù)向指標(biāo)進(jìn)行指標(biāo)標(biāo)準(zhǔn)化,得到標(biāo)準(zhǔn)化指標(biāo);
50、利用下述公式計算所述標(biāo)準(zhǔn)化指標(biāo)的指標(biāo)熵值:
51、;
52、;
53、其中,表示指標(biāo)熵值,表示第項標(biāo)準(zhǔn)化指標(biāo)下第個樣本值占該指標(biāo)的比重,表示第項標(biāo)準(zhǔn)化指標(biāo)下樣本值數(shù)目,表示第項標(biāo)準(zhǔn)化指標(biāo)下第個樣本值;
54、根據(jù)所述指標(biāo)熵值,利用下述公式計算所述標(biāo)準(zhǔn)化指標(biāo)的指標(biāo)權(quán)重:
55、;
56、其中,表示指標(biāo)權(quán)重,表示指標(biāo)熵值,表示標(biāo)準(zhǔn)化指標(biāo)的序號,表示標(biāo)準(zhǔn)化指標(biāo)的數(shù)目。
57、可選的,所述利用所述接口依賴指標(biāo)與所述指標(biāo)權(quán)重計算所述接口依賴映射的健康得分,包括:
58、獲取所述接口依賴指標(biāo)對應(yīng)的標(biāo)準(zhǔn)化指標(biāo);
59、根據(jù)所述標(biāo)準(zhǔn)化指標(biāo)與所述指標(biāo)權(quán)重,利用下述公式計算所述接口依賴映射的健康得分:
60、;
61、其中,表示健康得分,表示指標(biāo)權(quán)重,表示第項標(biāo)準(zhǔn)化指標(biāo)下第個樣本值,表示標(biāo)準(zhǔn)化指標(biāo)的序號,表示標(biāo)準(zhǔn)化指標(biāo)的數(shù)目。
62、可選的,所述分析所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果,包括:
63、獲取所述接口依賴映射對應(yīng)的接口依賴指標(biāo);
64、拼接所述接口依賴指標(biāo)與所述應(yīng)急措施,得到拼接數(shù)據(jù);
65、利用下述公式對所述拼接數(shù)據(jù)進(jìn)行特征提取,得到提取特征:
66、;
67、;
68、;
69、;
70、其中,表示提取特征,表示卷積神經(jīng)網(wǎng)絡(luò),表示拼接數(shù)據(jù),表示經(jīng)輸出的向量,表示多頭注意力機(jī)制,表示經(jīng)輸出的向量,表示拼接函數(shù),表示門控循環(huán)單元,表示經(jīng)門控循環(huán)單元輸出的向量;
71、根據(jù)所述提取特征,利用下述公式計算所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果概率:
72、;
73、其中,表示應(yīng)急效果概率,表示全連接層,表示函數(shù),表示提取特征;
74、利用所述應(yīng)急效果概率分析所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果。
75、為了解決上述問題,本發(fā)明還提供一種微服務(wù)軟件架構(gòu)中接口依賴管理系統(tǒng),所述系統(tǒng)包括:
76、映射構(gòu)建模塊,用于獲取微服務(wù)軟件架構(gòu)中待管理接口的接口代碼,利用所述接口代碼分析所述待管理接口中每個待管理接口之間的接口依賴關(guān)系,基于所述接口依賴關(guān)系,構(gòu)建所述待管理接口中每個待管理接口之間的接口依賴映射;
77、安全管理模塊,用于獲取所述接口依賴映射的白名單用戶與當(dāng)前用戶,收集所述白名單用戶對所述接口依賴映射的歷史使用日志,識別所述當(dāng)前用戶對所述接口依賴映射的當(dāng)前使用日志,基于所述歷史使用日志與所述當(dāng)前使用日志,對所述接口依賴映射進(jìn)行安全性管理,得到安全管理結(jié)果;
78、兼容管理模塊,用于獲取所述微服務(wù)軟件架構(gòu)的新版本產(chǎn)品,查詢所述新版本產(chǎn)品的服務(wù)依賴映射,檢測所述接口依賴映射與所述服務(wù)依賴映射之間是否存在合并沖突,以完成對所述接口依賴映射的兼容管理,得到兼容管理結(jié)果;
79、健康監(jiān)測模塊,用于采集所述接口依賴映射的接口依賴指標(biāo),對所述接口依賴指標(biāo)進(jìn)行指標(biāo)賦權(quán),得到所述接口依賴指標(biāo)的指標(biāo)權(quán)重,利用所述接口依賴指標(biāo)與所述指標(biāo)權(quán)重計算所述接口依賴映射的健康得分,通過所述健康得分對所述接口依賴映射進(jìn)行健康監(jiān)測,得到健康監(jiān)測結(jié)果;
80、健康管理模塊,用于在所述健康得分低于預(yù)設(shè)得分時,獲取所述接口依賴映射的應(yīng)急措施,分析所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果,根據(jù)所述應(yīng)急效果,執(zhí)行所述應(yīng)急措施,以完成對所述接口依賴映射的健康管理,得到健康管理結(jié)果;
81、依賴管理模塊,用于將所述接口依賴映射、所述安全管理結(jié)果、所述兼容管理結(jié)果、所述健康監(jiān)測結(jié)果及所述健康管理結(jié)果作為所述微服務(wù)軟件架構(gòu)的接口依賴管理結(jié)果。
82、相比于背景技術(shù)所述問題,本發(fā)明實(shí)施例通過利用所述接口代碼分析所述待管理接口中每個待管理接口之間的接口依賴關(guān)系,以用于減少微服務(wù)之間的接口調(diào)用錯綜復(fù)雜的問題,從而降低微服務(wù)之間的高耦合,進(jìn)一步的,本發(fā)明實(shí)施例通過基于所述歷史使用日志與所述當(dāng)前使用日志,對所述接口依賴映射進(jìn)行安全性管理,以用于減少接口使用限制管理松散薄弱的問題,進(jìn)一步的,本發(fā)明實(shí)施例通過檢測所述接口依賴映射與所述服務(wù)依賴映射之間是否存在合并沖突,以用于在有新版本的產(chǎn)品時,由于新版本產(chǎn)品仍需要在原有的微服務(wù)架構(gòu)中運(yùn)行,因此需要考慮新版本產(chǎn)品與舊微服務(wù)架構(gòu)之間的兼容性,本發(fā)明實(shí)施例通過對所述接口依賴指標(biāo)進(jìn)行指標(biāo)賦權(quán),以用于計算所述接口依賴指標(biāo)的權(quán)重,進(jìn)一步的,本發(fā)明實(shí)施例通過分析所述接口依賴映射在所述應(yīng)急措施下的應(yīng)急效果,以用于不使用以往的長短期記憶網(wǎng)絡(luò)來基于所監(jiān)測到的歷史接口依賴指標(biāo)預(yù)測未來時段的接口依賴指標(biāo),而是在歷史接口依賴指標(biāo)中加入應(yīng)急措施,預(yù)測未來時段的接口依賴指標(biāo),從而保障對異常數(shù)據(jù)的掌控與處理。因此本發(fā)明提出的微服務(wù)軟件架構(gòu)中接口依賴管理方法,可減少微服務(wù)接口的高耦合、接口限制薄弱及異常難以掌控的問題。