本發(fā)明涉及服務器數(shù)據(jù)處理,尤其涉及一種api接口管理方法、裝置、服務器和存儲介質。
背景技術:
1、隨著互聯(lián)網(wǎng)不斷發(fā)展以及5g時代的到來,用戶訪問各種網(wǎng)站的速度越來越快,對于后端的服務器數(shù)據(jù)處理壓力越來越大。用戶端通過調用api接口方式與服務應用程序數(shù)據(jù)進行交互,一個用戶請求到后端服務器的api接口時,服務器會為這個請求功能的api接口開一個線程來應對一個用戶請求。然而在服務器所服務的應用程序中,出現(xiàn)多線程占用了大量的服務器的資源,造成服務器系統(tǒng)的資源(cpu,內存,硬盤)等資源耗盡,服務器操作系統(tǒng)無法正常運行,可能給用戶造成一定的損失,或者給用戶體驗感不好。
2、目前大多的應對做法,使用高配置的服務器主機來減少資源耗盡的可能,但這樣提高了硬件成本,并且也難以避免用戶請求的api時出現(xiàn)多線程占用大量資源而導致資源耗盡、服務器無法運行的情況。
技術實現(xiàn)思路
1、本發(fā)明提供了一種api接口管理方法,以解決api接口管理的問題。
2、第一方面,本發(fā)明提供了一種api接口管理方法,應用于服務器,在所述服務器中,服務應用程序與操作系統(tǒng)采用沙箱技術進行隔離,所述服務應用程序建立兩個線程池并采用沙箱技術進行隔離,在兩個線程池中,第一線程池的資源分配量和執(zhí)行api接口的優(yōu)先級均高于第二線程池;
3、所述api接口管理方法包括:
4、當接收到用戶端發(fā)送的用戶請求時,采用預設的數(shù)據(jù)模型確定調用所述用戶請求對應的目標api接口的資源需求量;
5、獲取兩個線程池當前的資源消耗量;
6、根據(jù)所述資源需求量和兩個線程池的資源消耗量篩選目標線程池,所述目標線程池為能夠執(zhí)行所述目標api接口的線程池;
7、若存在目標線程池,控制所述目標api接口進入所述目標線程池執(zhí)行,設置所述目標api接口為執(zhí)行狀態(tài);
8、若不存在目標線程池,設置所述目標api接口為等待狀態(tài);
9、當所述目標api接口處于等待狀態(tài)時,判斷等待時長是否大于預設的等待時間閾值;
10、若否,返回執(zhí)行獲取兩個線程池當前的資源消耗量的步驟;
11、若是,確定所述目標api接口執(zhí)行異常,返回執(zhí)行異常信息給所述用戶端。
12、第二方面,本發(fā)明提供了一種api接口管理裝置,包括:
13、資源需求量確定模塊,用于當接收到用戶端發(fā)送的用戶請求時,采用預設的數(shù)據(jù)模型確定調用所述用戶請求對應的目標api接口的資源需求量;
14、資源消耗量獲取模塊,用于獲取兩個線程池當前的資源消耗量;
15、目標線程池篩選模塊,用于根據(jù)所述資源需求量和兩個線程池的資源消耗量篩選目標線程池,所述目標線程池為能夠執(zhí)行所述目標api接口的線程池;
16、執(zhí)行狀態(tài)設置模塊,用于若存在目標線程池,控制所述目標api接口進入所述目標線程池執(zhí)行,設置所述目標api接口為執(zhí)行狀態(tài);
17、等待狀態(tài)設置模塊,用于若不存在目標線程池,設置所述目標api接口為等待狀態(tài);
18、等待時長判斷模塊,用于當所述目標api接口處于等待狀態(tài)時,判斷等待時長是否大于預設的等待時間閾值;若是,則執(zhí)行異常反饋模塊的內容,若否,返回執(zhí)行資源消耗量獲取模塊的內容;
19、異常反饋模塊,用于確定所述目標api接口執(zhí)行異常,返回執(zhí)行異常信息給所述用戶端。
20、第三方面,本發(fā)明提供了一種服務器,所述服務器包括:
21、至少一個處理器;以及
22、與所述至少一個處理器通信連接的存儲器;其中,
23、所述存儲器存儲有可被所述至少一個處理器執(zhí)行的計算機程序,所述計算機程序被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本發(fā)明第一方面所述的api接口管理方法。
24、第四方面,本發(fā)明提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)本發(fā)明第一方面所述的api接口管理方法。
25、本發(fā)明實施例提供了一種api接口管理方法,其應用于服務器,在服務器中的服務應用程序與操作系統(tǒng)采用沙箱技術進行隔離,服務應用程序建立兩個線程池并采用沙箱技術進行隔離,在兩個線程池中,第一線程池的資源分配量和執(zhí)行api接口的優(yōu)先級均高于第二線程池,api接口管理方法包括:當接收到用戶端發(fā)送的用戶請求時,采用預設的數(shù)據(jù)模型確定調用用戶請求對應的目標api接口的資源需求量;獲取兩個線程池當前的資源消耗量;根據(jù)資源需求量和兩個線程池的資源消耗量篩選目標線程池,目標線程池為能夠執(zhí)行目標api接口的線程池;若存在目標線程池,控制目標api接口進入目標線程池執(zhí)行,設置目標api接口為執(zhí)行狀態(tài);若不存在目標線程池,設置目標api接口為等待狀態(tài),當目標api接口處于等待狀態(tài)時,判斷等待時長是否大于預設的等待時間閾值;若否,返回執(zhí)行獲取兩個線程池當前的資源消耗量的步驟,若是,確定目標api接口執(zhí)行異常,返回執(zhí)行異常信息給用戶端。
26、第一,本發(fā)明中服務應用程序與操作系統(tǒng)采用沙箱技術進行隔離,限定了服務應用程序與操作系統(tǒng)的資源占用上限,避免在服務器資源緊張的情況下,因服務應用程序占用資源過多而導致操作系統(tǒng)運行緩慢或異常。
27、第二,兩個線程池采用沙箱技術進行隔離并限定了資源分配量以及執(zhí)行接口的優(yōu)先級,對每個線程池獨立管理,優(yōu)先采用資源分配量大的線程池執(zhí)行api接口。在執(zhí)行api接口時,根據(jù)資源需求量和兩個線程池的資源消耗量篩選目標線程池,可以篩選出滿足執(zhí)行api資源需求量的目標線程池,在第一線程池資源占用較多而無法處理該目標api接口時,第二線程池可以作為備選,提高了執(zhí)行api接口的流暢性,既便于能夠快速地執(zhí)行api接口,也可避免系統(tǒng)卡頓,當不存在目標線程池時,目標api接口處于等待線程的狀態(tài),則對目標api接口的等待時間進行統(tǒng)計,當?shù)却龝r長大于預設的等待時間閾值時,放棄等待線程,確定用戶請求執(zhí)行異常,避免因該目標api接口在線程隊列中停留過久而影響后續(xù)api接口執(zhí)行,提高服務器運行效率。
28、應當理解,本部分所描述的內容并非旨在標識本發(fā)明的實施例的關鍵或重要特征,也不用于限制本發(fā)明的范圍。本發(fā)明的其它特征將通過以下的說明書而變得容易理解。
1.一種api接口管理方法,其特征在于,應用于服務器,在所述服務器中,服務應用程序與操作系統(tǒng)采用沙箱技術進行隔離,所述服務應用程序建立兩個線程池并采用沙箱技術進行隔離,在兩個線程池中,第一線程池的資源分配量和執(zhí)行api接口的優(yōu)先級均高于第二線程池;
2.如權利要求1所述的api接口管理方法,其特征在于,當接收到用戶端發(fā)送的用戶請求時,在所述采用預設的數(shù)據(jù)模型確定調用所述用戶請求對應的目標api接口的資源需求量之前,還包括:
3.如權利要求1項所述的api接口管理方法,其特征在于,所述根據(jù)所述資源需求量和兩個線程池的資源消耗量篩選目標線程池,包括:
4.如權利要求3所述的api接口管理方法,其特征在于,在所述第一和值大于或等于所述第一線程池的資源分配量時,還包括:
5.如權利要求1-4任一項所述的api接口管理方法,其特征在于,所述數(shù)據(jù)模型采用歷史的api接口的調用數(shù)據(jù)訓練得到,所述調用數(shù)據(jù)包括各api接口執(zhí)行時所需的資源量和執(zhí)行時間。
6.如權利要求1-4任一項所述的api接口管理方法,其特征在于,還包括:
7.如權利要求1-4任一項所述的api接口管理方法,其特征在于,還包括:
8.一種api接口管理裝置,其特征在于,包括:
9.一種服務器,其特征在于,所述服務器包括:
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)權利要求1-7中任一項所述的api接口管理方法。