System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,尤其涉及一種主從數據庫配置檢測方法、裝置、存儲介質及計算機設備。
技術介紹
1、隨著數據規模和訪問量的不斷增長,單一數據庫難以滿足高并發和高性能的要求。因此,許多系統引入了讀寫分離機制,將事務性操作與查詢操作分開處理,以提高數據庫的性能和可擴展性。讀寫分離通過將主數據庫用于處理事務性操作,如插入、更新和刪除,而將從數據庫用于處理查詢操作,從而減少主數據庫的壓力。
2、在基于微服務架構的應用場景中,讀寫分離的配置通常由開發人員或運維人員進行手動配置。具體來說,應用程序可以通過配置選擇在主數據庫進行寫操作,在從數據庫進行讀操作。數據庫復制機制則用于將主數據庫上的變更同步到從數據庫,確保從數據庫數據的一致性。
3、盡管這種方法在設計上能有效分擔數據庫壓力,但由于讀寫分離配置是手動完成的,難免會存在配置錯誤的風險。如果配置錯誤,可能會導致應用程序在主庫上同時進行讀寫操作或在從庫上進行寫操作。而在低流量場景下,即便配置錯誤,應用可能仍能正常運行,導致主從數據庫配置錯誤的問題無法被及時發現。
技術實現思路
1、本申請的目的旨在至少能解決上述的技術缺陷之一,特別是現有技術中主從數據庫配置錯誤的問題無法被及時發現的技術缺陷。
2、第一方面,本申請提供了一種主從數據庫配置檢測方法,該方法包括:
3、當監聽到應用代碼發生變動時,獲取已變動應用代碼的上下文配置文件、各個初始函數方法及其對應的類信息;
4、通過上下文配置文件,獲
5、根據每個目標函數方法的類信息,在各個初始asgard?sdk中,確定每個目標函數方法用于數據庫事務操作的目標asgard?sdk;
6、根據每個目標函數方法的調用關系,確定各個初始調用鏈,并對各個初始調用鏈進行過濾,得到用于只讀數據庫的各個目標調用鏈;
7、建立每個目標調用鏈的頂層接口與各個asgard?sdk之間的映射關系,并根據各個映射關系,檢測已變動應用代碼對應的主從數據庫的讀寫配置。
8、在其中一個實施例中,獲取已變動應用代碼的上下文配置文件、各個初始函數方法及其對應的類信息的步驟,包括:
9、獲取已變動應用代碼的配置標簽,并根據各個配置標簽構建節點樹;
10、遍歷節點樹的接口,得到上下文配置文件;
11、將已變動應用代碼構建為語法樹,并遍歷語法樹,得到各個初始函數方法及其對應的類信息。
12、在其中一個實施例中,通過上下文配置文件,獲取各個初始函數方法中用于數據庫交互的多個目標函數方法的步驟,包括:
13、從上下文配置文件中獲取各個映射配置文件位置;
14、根據各個映射配置文件位置,獲取每個映射配置文件位置中的映射配置文件;
15、根據每個映射配置文件中的命名空間,得到各個初始函數方法中用于數據庫交互的各個目標函數方法。
16、在其中一個實施例中,根據每個目標函數方法的類信息,在各個初始asgard?sdk中,確定每個目標函數方法用于數據庫事務操作的目標asgard?sdk的步驟,包括:
17、根據每個目標函數方法的類信息,通過正則匹配確定每個目標函數方法對應的映射配置文件路徑;
18、根據每個目標函數方法對應的映射配置文件路徑,確定每個目標函數方法對應的映射配置文件;
19、對每個目標函數方法對應的映射配置文件進行解析,并在各個初始asgard?sdk中,確定每個目標函數方法用于數據庫事務操作的目標asgard?sdk。
20、在其中一個實施例中,根據每個目標函數方法的調用關系,確定各個初始調用鏈的步驟,包括:
21、確定已變動應用代碼的語法樹,并為語法樹中的每個初始函數方法的方法編號;
22、在已編號的語法樹中識別方法調用節點,并根據各個方法調用節點,構建每個目標函數方法的調用關系;
23、基于圖算法,將各個調用關系中的初始函數方法,以對應的方法編號進行連接,得到各個初始調用鏈。
24、在其中一個實施例中,對各個初始調用鏈進行過濾,得到用于只讀數據庫的各個目標調用鏈的步驟,包括:
25、確定每個初始調用鏈中每個目標函數方法的方法注解;
26、對于每個初始調用鏈,若該初始調用鏈對應的方法注解包括只讀注解,則將該初始調用鏈作為目標調用鏈,以得到用于只讀數據庫的各個目標調用鏈。
27、在其中一個實施例中,根據各個映射關系,檢測已變動應用代碼對應的主從數據庫的讀寫配置的步驟,包括:
28、根據各個映射關系,查詢每個頂層接口用于數據庫讀寫的asgard配置;
29、對于每個頂層接口,若根據該頂層接口的asgard配置確定該頂層接口對應的主從數據庫配置為讀主數據庫,則生成該頂層接口用于表示主從數據庫配置錯誤的提示信息。
30、第二方面,本申請提供了一種主從數據庫配置檢測裝置,該裝置包括:
31、應用代碼監聽模塊,用于當監聽到應用代碼發生變動時,獲取已變動應用代碼的上下文配置文件、各個初始函數方法及其對應的類信息;
32、目標函數方法獲取模塊,用于通過上下文配置文件,獲取各個初始函數方法中用于數據庫交互的各個目標函數方法,以及獲取各個初始asgard?sdk,asgard?sdk用于表示已變動應用代碼對應的數據源;
33、目標asgard?sdk確定模塊,用于根據每個目標函數方法的類信息,在各個初始asgard?sdk中,確定每個目標函數方法用于數據庫事務操作的目標asgard?sdk;
34、目標調用鏈確定模塊,用于根據每個目標函數方法的調用關系,確定各個初始調用鏈,并對各個初始調用鏈進行過濾,得到用于只讀數據庫的各個目標調用鏈;
35、讀寫配置檢測模塊,用于建立每個目標調用鏈的頂層接口與各個所述asgard?sdk之間的映射關系,并根據各個映射關系,檢測已變動應用代碼對應的主從數據庫的讀寫配置。
36、第三方面,本申請提供了一種存儲介質:存儲介質中存儲有計算機可讀指令,計算機可讀指令被一個或多個處理器執行時,使得一個或多個處理器執行如上述實施例中任一項主從數據庫配置檢測方法的步驟。
37、第四方面,本申請提供了一種計算機設備,包括:一個或多個處理器,以及存儲器;
38、存儲器中存儲有計算機可讀指令,計算機可讀指令被一個或多個處理器執行時,執行如上述實施例中任一項主從數據庫配置檢測方法的步驟。
39、從以上技術方案可以看出,本申請實施例具有以下優點:
40、在本申請提供的主從數據庫配置檢測方法、裝置、存儲介質及計算機設備中,通過監聽應用代碼變動,能夠及時捕本文檔來自技高網...
【技術保護點】
1.一種主從數據庫配置檢測方法,其特征在于,所述方法包括:
2.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述獲取已變動應用代碼的上下文配置文件、各個初始函數方法及其對應的類信息的步驟,包括:
3.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述通過所述上下文配置文件,獲取各個所述初始函數方法中用于數據庫交互的多個目標函數方法的步驟,包括:
4.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述根據每個所述目標函數方法的類信息,在各個所述初始Asgard?SDK中,確定每個所述目標函數方法用于數據庫事務操作的目標Asgard?SDK的步驟,包括:
5.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述根據每個所述目標函數方法的調用關系,確定各個初始調用鏈的步驟,包括:
6.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述對各個所述初始調用鏈進行過濾,得到用于只讀數據庫的各個目標調用鏈的步驟,包括:
7.根據權利要求1所述的主從數據庫配置檢測方法,其特征
8.一種主從數據庫配置檢測裝置,其特征在于,所述裝置包括:
9.一種存儲介質,其特征在于:所述存儲介質中存儲有計算機可讀指令,所述計算機可讀指令被一個或多個處理器執行時,使得一個或多個處理器執行如權利要求1至7中任一項所述主從數據庫配置檢測方法的步驟。
10.一種計算機設備,其特征在于,包括:一個或多個處理器,以及存儲器;
...【技術特征摘要】
1.一種主從數據庫配置檢測方法,其特征在于,所述方法包括:
2.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述獲取已變動應用代碼的上下文配置文件、各個初始函數方法及其對應的類信息的步驟,包括:
3.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述通過所述上下文配置文件,獲取各個所述初始函數方法中用于數據庫交互的多個目標函數方法的步驟,包括:
4.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述根據每個所述目標函數方法的類信息,在各個所述初始asgard?sdk中,確定每個所述目標函數方法用于數據庫事務操作的目標asgard?sdk的步驟,包括:
5.根據權利要求1所述的主從數據庫配置檢測方法,其特征在于,所述根據每個所述目標函數方...
【專利技術屬性】
技術研發人員:王飛宇,
申請(專利權)人:廣州品唯軟件有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。