[發明專利]一種微服務系統中循環依賴檢測方法及系統在審
| 申請號: | 202210065403.9 | 申請日: | 2022-01-20 |
| 公開(公告)號: | CN114416564A | 公開(公告)日: | 2022-04-29 |
| 發明(設計)人: | 劉明偉;代昊琦;康旖;梁子健;劉竹青;任昊文;王金賀;張凌志 | 申請(專利權)人: | 南方電網數字電網研究院有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F9/448 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 茍冬梅 |
| 地址: | 510000 廣東省廣州市黃*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 微服 系統 循環 依賴 檢測 方法 | ||
1.一種微服務系統中循環依賴檢測方法,其特征在于,所述方法包括:
響應于對所述微服務系統的循環依賴檢測請求,執行第一循環依賴檢測任務以及第二循環依賴檢測任務;
其中,執行所述第一循環依賴檢測任務,包括:
獲取所述微服務系統中執行同一請求任務的各個服務上報的調用信息,每個服務執行所述請求任務的當前時間戳、該服務的服務標識、以及該服務所要調用的其他服務的服務標識;
基于所述各個服務上報的調用信息中每個服務執行所述請求任務的當前時間戳、該服務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征執行所述請求任務的各個服務的服務流程的第一有向圖;
基于所述第一有向圖,確定所述請求任務是否存在循環依賴;
其中,執行所述第二循環依賴檢測任務,包括:
獲取所述微服務系統中每個服務執行請求任務的服務標識、以及該服務所要調用的其他服務的服務標識;
基于每個服務執行請求任務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征所述各個服務的調用關系的第二有向圖;
基于所述第二有向圖,確定所述多個服務之間是否存在循環依賴。
2.根據權利要求1所述的一種檢測方法,其特征在于,獲取所述微服務系統中執行同一請求任務的各個服務上報的調用信息,包括:
每當所述所述微服務系統中的一個服務在調用另一個服務的接口時,另一個服務均檢測所述服務的調用請求中是否存在唯一標識;
若不存在,則生成唯一標識并放入所述服務中;
若存在,則將唯一標識放入另一個服務生成的調用請求中;
獲取所有唯一標識相同的所述服務的調用信息。
3.根據權利要求2所述的一種檢測方法,其特征在于,所述基于所述各個服務上報的調用信息中每個服務執行所述請求任務的當前時間戳、該服務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征執行所述請求任務的各個服務的服務流程的第一有向圖,包括:
創建一個分組,將所述各個服務上報的調用信息放入所述分組中;
按照所述當前時間戳的先后順序,對所述分組中多個調用信息進行先后排列;
按照所述排列順序,依次連接所述多個調用信息中調用服務的服務標識和被調用服務的服務標識,得到所述第一有向圖。
4.根據權利要求3所述的一種檢測方法,其特征在于,所述基于所述第一有向圖,確定所述請求任務是否存在循環依賴,包括:
遍歷所述第一有向圖,判斷所述第一有向圖中是否存在服務標識相同的兩個服務之間的連接關系;
若存在,則所述請求任務中存在循環依賴。
5.根據權利要求1所述的一種檢測方法,其特征在于,所述基于每個服務執行請求任務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征所述各個服務的調用關系的第二有向圖,包括:
按照每個服務所調用其他服務之間的服務調用關系,連接各個服務的服務標識,其中,調用服務的服務標識連接被調用服務的服務標識,得到所述第二有向圖。
6.根據權利要求5所述的一種檢測方法,其特征在于,所述基于所述第二有向圖,確定所述多個服務之間是否存在循環依賴,包括:
遍歷所述第二有向圖,判斷所述第二有向圖中是否存在服務標識相同的兩個服務之間的連接關系;
若存在,則該微服務系統中存在循環依賴。
7.根據權利要求1-6任一所述的一種檢測方法,其特征在于,所述方法還包括:
當檢測到所述請求任務存在循環依賴時,輸出第一告警信息;
當檢測到所述第二有向圖中存在循環依賴時,輸出存在循環依賴的服務的第二告警信息。
8.根據權利要求7所述的一種檢測方法,其特征在于,所述方法還包括:
每在輸出第二告警信息時,均獲取所述第二有向圖中存在循環依賴服務的當前服務版本信息;
對多次輸出第二告警信息時獲取的當前服務版本信息進行對比,以確定服務存在循環依賴的版本。
9.一種微服務系統中循環依賴檢測系統,其特征在于,包括第一獲取模塊、第一有向圖生成模塊、第二獲取模塊、第二有向圖生成模塊、循環依賴判斷模塊、告警模塊和記錄對比模塊,其中:
第一獲取模塊,用于獲取所述微服務系統中執行同一請求任務的各個服務上報的調用信息,每個服務執行所述請求任務的當前時間戳、該服務的服務標識、以及該服務所要調用的其他服務的服務標識;
第一有向圖生成模塊,用于基于所述各個服務上報的調用信息中每個服務執行所述請求任務的當前時間戳、該服務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征執行所述請求任務的各個服務的服務流程的第一有向圖;
第二獲取模塊,用于獲取所述微服務系統中每個服務執行請求任務的服務標識、以及該服務所要調用的其他服務的服務標識;
第二有向圖生成模塊,用于基于每個服務執行請求任務的服務標識、以及該服務所要調用的其他服務的服務標識,生成表征所述各個服務的調用關系的第二有向圖;
循環依賴判斷模塊,用于基于基于所述第一有向圖,確定所述請求任務是否存在循環依賴;用于基于所述第二有向圖,確定所述多個服務之間是否存在循環依賴;告警模塊,用于在當檢測到所述請求任務存在循環依賴時,輸出第一告警信息;在檢測到所述第二有向圖中存在循環依賴時,輸出存在循環依賴的服務的第二告警信息;
記錄對比模塊,用于在輸出第二告警信息時,同時對比所述存在循環依賴服務的當前服務版本信息;若所述存在循環依賴的的當前服務版本信息不一致,則上報記錄。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南方電網數字電網研究院有限公司,未經南方電網數字電網研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210065403.9/1.html,轉載請聲明來源鉆瓜專利網。





