本技術(shù)涉及流量控制,特別涉及一種多維度組合的api網(wǎng)關(guān)流量控制方法及系統(tǒng)。
背景技術(shù):
1、api網(wǎng)關(guān)流量控制是一種重要的技術(shù)手段,用于管理通過api網(wǎng)關(guān)的請(qǐng)求流量,保障后端服務(wù)的穩(wěn)定性和可用性。它涉及到以下幾個(gè)領(lǐng)域:第一,通過對(duì)請(qǐng)求速率、并發(fā)數(shù)等指標(biāo)設(shè)置閾值,超出限制的請(qǐng)求會(huì)被拒絕或排隊(duì)等待,避免流量激增導(dǎo)致系統(tǒng)過載;第二,根據(jù)不同的api、用戶、應(yīng)用等維度,對(duì)系統(tǒng)資源進(jìn)行隔離劃分,防止個(gè)別api或用戶占用過多資源,影響其他請(qǐng)求;第三,網(wǎng)關(guān)可根據(jù)api的特征、用戶屬性、系統(tǒng)狀態(tài),動(dòng)態(tài)選擇最優(yōu)的后端服務(wù)節(jié)點(diǎn)進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)。
2、授權(quán)公告號(hào)為cn111107012b的中國專利公開了一種多維度集中流量的控制方法及系統(tǒng),包括:接收服務(wù)調(diào)用方發(fā)起的請(qǐng)求;根據(jù)設(shè)置的流量控制維度,從令牌桶中獲取對(duì)應(yīng)維度的令牌,并依次分配給請(qǐng)求;將分配到令牌后的請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)提供方的消息隊(duì)列上進(jìn)行排隊(duì);當(dāng)請(qǐng)求排隊(duì)結(jié)束后,判斷請(qǐng)求是否有訪問服務(wù)提供方的令牌;在有令牌的情況下,將請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)提供方,并在收到服務(wù)提供方的返回信息時(shí),釋放令牌。
3、現(xiàn)有的基于動(dòng)態(tài)路由與負(fù)載均衡的api網(wǎng)關(guān)流量控制方法,雖然在一定程度上可以優(yōu)化請(qǐng)求轉(zhuǎn)發(fā)、均衡服務(wù)節(jié)點(diǎn)壓力,但仍然存在一些不足和局限性,具體問題如下:現(xiàn)有方法對(duì)流量的異常波動(dòng)、突發(fā)、持續(xù)過載等缺乏有效的檢測(cè)和應(yīng)對(duì)措施,一旦發(fā)生流量異常,就可能導(dǎo)致服務(wù)中斷或級(jí)聯(lián)故障,缺乏有效的流量異常隔離和限流手段,可能導(dǎo)致局部流量異常的影響迅速蔓延,引發(fā)連鎖反應(yīng)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。為此,本技術(shù)的一個(gè)目的在于提出一種多維度組合的api網(wǎng)關(guān)流量控制方法及系統(tǒng),實(shí)現(xiàn)了流量異常的控制和自愈。
2、本技術(shù)的一個(gè)方面提供了一種多維度組合的api網(wǎng)關(guān)流量控制方法,包括:
3、步驟s100:將歷史運(yùn)行周期分為a個(gè)時(shí)段,收集api網(wǎng)關(guān)的監(jiān)控?cái)?shù)據(jù)和節(jié)點(diǎn)的資源利用數(shù)據(jù),收集流量異常時(shí)的上下文信息,生成第一特征集合;
4、步驟s200:計(jì)算第一特征集合中每個(gè)特征的特征重要性參數(shù),將特征重要性參數(shù)大于特征選擇閾值的特征作為影響流量異常的關(guān)鍵特征,生成異常特征矩陣;
5、步驟s300:利用異常特征矩陣和上下文信息訓(xùn)練異常分類模型和異常影響范圍預(yù)測(cè)模型,利用異常分類模型預(yù)測(cè)當(dāng)前流量異常的異常類型,利用異常影響范圍預(yù)測(cè)模型預(yù)測(cè)當(dāng)前流量異常的影響范圍;
6、步驟s400:為每種異常類型設(shè)計(jì)流量控制策略,統(tǒng)計(jì)每種流量控制策略在不同歷史異常處理中的恢復(fù)時(shí)間、恢復(fù)質(zhì)量和資源消耗,計(jì)算策略歷史表現(xiàn)評(píng)分,由當(dāng)前流量異常的異常類型和影響范圍計(jì)算每種流量控制策略的策略適應(yīng)度評(píng)分;
7、步驟s500:由策略歷史表現(xiàn)評(píng)分和策略適用度評(píng)分計(jì)算得到策略收益,計(jì)算每種流量控制策略的策略失效風(fēng)險(xiǎn),由策略收益和策略失效風(fēng)險(xiǎn)計(jì)算每種流量控制策略對(duì)當(dāng)前流量異常的策略評(píng)分值,將策略評(píng)分值最高的流量控制策略作為最優(yōu)流量控制策略。
8、優(yōu)選地,所述將歷史運(yùn)行周期分為a個(gè)時(shí)段,收集api網(wǎng)關(guān)的監(jiān)控?cái)?shù)據(jù)和節(jié)點(diǎn)的資源利用數(shù)據(jù),收集流量異常時(shí)的上下文信息,生成第一特征集合的具體方法為:
9、步驟s110:收集歷史運(yùn)行周期內(nèi)a個(gè)時(shí)段中api網(wǎng)關(guān)的監(jiān)控?cái)?shù)據(jù),包括:請(qǐng)求數(shù)、響應(yīng)時(shí)間、錯(cuò)誤率、吞吐量;
10、步驟s120:收集每個(gè)節(jié)點(diǎn)的資源利用數(shù)據(jù),包括:cpu利用率、內(nèi)存利用率、網(wǎng)絡(luò)利用率、磁盤利用率;
11、步驟s130:將a個(gè)時(shí)段中出現(xiàn)流量異常的時(shí)段進(jìn)行識(shí)別,收集流量異常發(fā)生時(shí)的上下文信息,包括:異常時(shí)間、異常類型、受影響的節(jié)點(diǎn)、受影響的api;
12、步驟s140:對(duì)歷史運(yùn)行周期內(nèi)流量異常的時(shí)段標(biāo)注異常標(biāo)簽,所述異常標(biāo)簽的標(biāo)注內(nèi)容包括異常時(shí)間、異常類型標(biāo)簽、流量異常的影響范圍標(biāo)簽,所述異常類型標(biāo)簽包括流量激增、拒絕服務(wù)和資源耗盡,所述流量異常的影響范圍標(biāo)簽包括api影響標(biāo)簽和節(jié)點(diǎn)影響標(biāo)簽;
13、步驟s150:對(duì)a個(gè)時(shí)段的監(jiān)控?cái)?shù)據(jù)、資源利用數(shù)據(jù)和上下文信息進(jìn)行特征提取生成第一特征集合,每個(gè)時(shí)段的監(jiān)控?cái)?shù)據(jù)、資源利用數(shù)據(jù)和上下文信息特征提取后得到的特征為第一特征集合中的樣本。
14、優(yōu)選地,所述計(jì)算第一特征集合中每個(gè)特征的特征重要性參數(shù),將特征重要性參數(shù)大于特征選擇閾值的特征作為影響流量異常的關(guān)鍵特征,生成異常特征矩陣的具體方法為:
15、步驟s210:計(jì)算第一特征集合中每個(gè)特征的特征重要性參數(shù),計(jì)算公式為:ig(tzi,gz)=h(gz)-h(gztzi),其中,ig(tzi,gz)為第i個(gè)特征的特征重要性參數(shù),h(gz)表示異常標(biāo)簽的信息熵,h(gztzi)表示在特征為tzi的情況下異常標(biāo)簽的條件信息熵;
16、所述信息熵的計(jì)算公式為:h(gz)=-σjp(gzj)×log2(p(gzj)),其中,p(gzj)表示異常類型標(biāo)簽為gzj的概率,gzj為異常類型標(biāo)簽的第j個(gè)類別;
17、所述特征為tzi的情況下異常標(biāo)簽的條件信息熵的計(jì)算公式為:h(gztzi)=σp(tzi=vk)×h(gztzi=vk),其中,p(tzi=vk)表示特征tzi取值為vk的概率,h(gztzi=vk)表示在特征tzi取值為vk的條件下的異常標(biāo)簽的條件信息熵;
18、步驟s220:預(yù)設(shè)特征選擇閾值,將特征重要性參數(shù)大于特征選擇閾值的特征作為影響流量異常的關(guān)鍵特征,得到影響流量異常的n個(gè)關(guān)鍵特征,構(gòu)成關(guān)鍵特征集;
19、步驟s230:將關(guān)鍵特征進(jìn)行編碼得到關(guān)鍵特征編碼,生成異常特征矩陣xgz=(x1,x2,...,xm)t,xm=(xm1,xm2,...,xmn),m∈{1,2,...,m},所述異常特征矩陣中包含m個(gè)的異常特征向量,其中,xm為第m個(gè)時(shí)段的異常特征向量,xmn為第m個(gè)時(shí)段的異常特征向量中的第n個(gè)關(guān)鍵特征編碼,t為矩陣的轉(zhuǎn)置。
20、優(yōu)選地,所述流量異常的影響范圍具體包括:api影響概率和節(jié)點(diǎn)影響概率,api影響概率的維度為aapi,aapi表示api的數(shù)量,所述節(jié)點(diǎn)影響概率的維度為ajd,ajd表示節(jié)點(diǎn)的數(shù)量,所述api影響概率和節(jié)點(diǎn)影響概率為0~1之間的概率值。
21、優(yōu)選地,所述利用異常特征矩陣和上下文信息訓(xùn)練異常分類模型和異常影響范圍預(yù)測(cè)模型,利用異常分類模型預(yù)測(cè)當(dāng)前流量異常的異常類型,利用異常影響范圍預(yù)測(cè)模型預(yù)測(cè)當(dāng)前流量異常的影響范圍的具體方法為:
22、步驟s310:選擇softmax回歸模型作為訓(xùn)練異常分類模型的初始模型,softmax回歸模型的輸入層以異常特征向量作為輸入數(shù)據(jù),softmax回歸模型的輸出層以異常類型標(biāo)簽的one-hot編碼作為輸出數(shù)據(jù),在輸入層和輸出層中間添加myc個(gè)全連接的隱藏層,將relu函數(shù)作為激活函數(shù),使用softmax函數(shù)將輸出數(shù)據(jù)轉(zhuǎn)換為概率分布;
23、步驟s320:以交叉熵?fù)p失作為異常分類模型的損失函數(shù);
24、所述異常分類模型的損失函數(shù)的計(jì)算公式為:loss1=-σytrue×log(ypred),其中,ytrue為真實(shí)的異常類型標(biāo)簽的one-hot編碼,ypred為預(yù)測(cè)的異常類型的概率分布,log(·)為對(duì)數(shù)函數(shù);
25、步驟s330:使用adam優(yōu)化算法更新異常分類模型的參數(shù),當(dāng)交叉熵?fù)p失的值最小時(shí)訓(xùn)練完成,得到訓(xùn)練好的異常分類模型;
26、步驟s340:選擇多標(biāo)簽神經(jīng)網(wǎng)絡(luò)模型作為訓(xùn)練異常影響范圍預(yù)測(cè)模型的初始模型,多標(biāo)簽神經(jīng)網(wǎng)絡(luò)模型的輸入層以異常特征向量作為輸入數(shù)據(jù),多標(biāo)簽神經(jīng)網(wǎng)絡(luò)模型的輸出層以流量異常的影響范圍作為輸出數(shù)據(jù),在輸入層和輸出層之間添加nyc個(gè)全連接的隱藏層,將relu函數(shù)作為激活函數(shù);
27、步驟s350:以異常特征向量作為訓(xùn)練數(shù)據(jù)的輸入,以對(duì)應(yīng)流量異常的api影響標(biāo)簽、節(jié)點(diǎn)影響標(biāo)簽作為訓(xùn)練數(shù)據(jù)的輸出,所述api影響標(biāo)簽的維度為(m,aapi),所述節(jié)點(diǎn)影響標(biāo)簽的維度為(m,ajd),每個(gè)api影響標(biāo)簽或節(jié)點(diǎn)影響標(biāo)簽的取值為0或1,0表示流量異常對(duì)該api或節(jié)點(diǎn)無影響,1表示流量異常對(duì)該api或節(jié)點(diǎn)有影響;
28、步驟s360:使用二元交叉熵?fù)p失作為異常影響范圍預(yù)測(cè)模型的損失函數(shù),所述異常影響范圍預(yù)測(cè)模型的損失函數(shù)包括api影響損失和節(jié)點(diǎn)影響損失;
29、所述api影響損失的計(jì)算公式為:其中,為真實(shí)的api影響標(biāo)簽,為預(yù)測(cè)的api影響概率;
30、所述節(jié)點(diǎn)影響損失的計(jì)算公式為:其中,y′true為真實(shí)的節(jié)點(diǎn)影響標(biāo)簽,y′pred為預(yù)測(cè)的節(jié)點(diǎn)影響概率;
31、所述異常影響范圍預(yù)測(cè)模型的損失函數(shù)的計(jì)算公式為:其中,λapi、λjd分別為api影響損失和節(jié)點(diǎn)影響損失的權(quán)重系數(shù);
32、步驟s370:使用adam優(yōu)化算法最小化異常影響范圍預(yù)測(cè)模型的損失函數(shù),更新異常影響范圍預(yù)測(cè)模型的參數(shù),當(dāng)異常影響范圍預(yù)測(cè)模型的損失函數(shù)最小時(shí)訓(xùn)練完成,得到異常影響范圍預(yù)測(cè)模型;
33、步驟s380:利用訓(xùn)練好的異常分類模型預(yù)測(cè)當(dāng)前流量異常的異常類型,利用訓(xùn)練好的異常影響范圍預(yù)測(cè)模型預(yù)測(cè)api影響概率和節(jié)點(diǎn)影響概率。
34、優(yōu)選地,所述為每種異常類型設(shè)計(jì)流量控制策略,統(tǒng)計(jì)每種流量控制策略在不同歷史異常處理中的恢復(fù)時(shí)間、恢復(fù)質(zhì)量和資源消耗,計(jì)算策略歷史表現(xiàn)評(píng)分,由當(dāng)前流量異常的異常類型和影響范圍計(jì)算每種流量控制策略的策略適應(yīng)度評(píng)分的具體方法為:
35、步驟s410:根據(jù)每種異常類型的特點(diǎn),為其設(shè)計(jì)一組流量控制策略得到策略池,第j種異常類型的策略池為clj={clj1,clj2,...,cljc},其中,cljc表示第j種異常類型的策略池中的第c種流量控制策略,c表示流量控制策略總數(shù);
36、步驟s420:利用歷史異常處理日志統(tǒng)計(jì)每種流量控制策略在歷史異常處理中的恢復(fù)時(shí)間、恢復(fù)質(zhì)量和資源消耗,通過加權(quán)平均計(jì)算得到平均恢復(fù)時(shí)間、平均恢復(fù)質(zhì)量和平均資源消耗,并得到所有流量控制策略在歷史異常處理中的最大恢復(fù)時(shí)間和最大資源消耗;
37、步驟s430:根據(jù)平均恢復(fù)時(shí)間、平均恢復(fù)質(zhì)量、平均資源消耗、最大恢復(fù)時(shí)間和最大資源消耗計(jì)算得到該流量控制策略的策略歷史表現(xiàn)評(píng)分;
38、所述策略歷史表現(xiàn)評(píng)分的計(jì)算方法為:其中,hsjc為第j種異常類型的第c種流量控制策略cljc在歷史異常處理中的策略歷史表現(xiàn)評(píng)分,c∈{1,2,...,c},avg(tjc)、avg(qjc)、avg(cjc)分別為流量控制策略cljc在歷史異常處理中的平均恢復(fù)時(shí)間、平均恢復(fù)質(zhì)量和平均資源消耗,tmax、cmax分別為所有流量控制策略在歷史異常處理中的最大恢復(fù)時(shí)間和最大資源消耗,α1、α2、α3分別為恢復(fù)時(shí)間、恢復(fù)質(zhì)量和資源消耗的權(quán)重系數(shù),α1+α2+α3=1;
39、步驟s440:由當(dāng)前流量異常的異常類型和影響范圍得到第二特征向量,獲取流量控制策略cljc在歷史異常處理中處理的所有流量異常的異常類型和影響范圍,計(jì)算所有異常類型的平均值和所有流量異常的影響范圍的平均值,由異常類型的平均值和影響范圍的平均值構(gòu)成平均特征向量;
40、步驟s450:計(jì)算第二特征向量和平均特征向量之間的特征相似度,將所述特征相似度作為流量控制策略cljc與當(dāng)前流量異常的策略適用度評(píng)分;
41、所述策略適用度評(píng)分的計(jì)算公式為:asjc=sim(fvnow,fvjc,hst),其中,fvnow為當(dāng)前流量異常的第二特征向量,fvjc,hst為流量控制策略cljc在歷史異常處理中處理的所有異常的平均特征向量,sim(·)為相似度函數(shù),asjc為流量控制策略cljc與當(dāng)前流量異常的策略適用度評(píng)分。
42、優(yōu)選地,所述由策略歷史表現(xiàn)評(píng)分和策略適用度評(píng)分計(jì)算得到策略收益,計(jì)算每種流量控制策略的策略失效風(fēng)險(xiǎn),由策略收益和策略失效風(fēng)險(xiǎn)計(jì)算每種流量控制策略對(duì)當(dāng)前流量異常的策略評(píng)分值,將策略評(píng)分值最高的流量控制策略作為最優(yōu)流量控制策略的具體方法為:
43、步驟s510:由策略歷史表現(xiàn)評(píng)分和策略適用度評(píng)分計(jì)算得到策略收益,所述策略收益的計(jì)算公式為:syjc=βhs×hsjc+βas×asjc,其中,βhs、βas分別為策略歷史表現(xiàn)評(píng)分和策略適用度評(píng)分的權(quán)重系數(shù),βhs+βas=1;
44、步驟s520:通過歷史異常處理日志,統(tǒng)計(jì)每個(gè)流量控制策略在歷史異常處理中的失效次數(shù)和總執(zhí)行次數(shù),計(jì)算得到策略失效風(fēng)險(xiǎn):
45、所述策略失效風(fēng)險(xiǎn)的計(jì)算方法為:其中,nfail,jc為流量控制策略cljc在歷史異常處理中的失效次數(shù),ntotal,jc為流量控制策略cljc在歷史異常處理中的總執(zhí)行次數(shù);
46、步驟s530:由策略收益和策略失效風(fēng)險(xiǎn)計(jì)算得到流量控制策略cljc的策略評(píng)分值;
47、所述策略評(píng)分值的計(jì)算公式為:scorejc=syjc-rp×fxjc,其中,rp為風(fēng)險(xiǎn)懲罰系數(shù);
48、步驟s540:計(jì)算所有流量控制策略的策略評(píng)分值,選擇策略評(píng)分值最高的流量控制策略作為最優(yōu)流量控制策略,執(zhí)行最優(yōu)流量控制策略對(duì)當(dāng)前流量異常進(jìn)行處理和恢復(fù)。
49、本技術(shù)的一個(gè)方面提供了一種多維度組合的api網(wǎng)關(guān)流量控制系統(tǒng),包括:
50、第一特征集合生成模塊,用于將歷史運(yùn)行周期分為a個(gè)時(shí)段,收集api網(wǎng)關(guān)的監(jiān)控?cái)?shù)據(jù)和節(jié)點(diǎn)的資源利用數(shù)據(jù),收集流量異常時(shí)的上下文信息,生成第一特征集合;
51、異常特征矩陣生成模塊,用于計(jì)算第一特征集合中每個(gè)特征的特征重要性參數(shù),將特征重要性參數(shù)大于特征選擇閾值的特征作為影響流量異常的關(guān)鍵特征,生成異常特征矩陣;
52、類型和影響范圍預(yù)測(cè)模塊,用于利用異常特征矩陣和上下文信息訓(xùn)練異常分類模型和異常影響范圍預(yù)測(cè)模型,利用異常分類模型預(yù)測(cè)當(dāng)前流量異常的異常類型,利用異常影響范圍預(yù)測(cè)模型預(yù)測(cè)當(dāng)前流量異常的影響范圍;
53、流量控制策略評(píng)估模塊,用于為每種異常類型設(shè)計(jì)流量控制策略,統(tǒng)計(jì)每種流量控制策略在不同歷史異常處理中的恢復(fù)時(shí)間、恢復(fù)質(zhì)量和資源消耗,計(jì)算策略歷史表現(xiàn)評(píng)分,由當(dāng)前流量異常的異常類型和影響范圍計(jì)算每種流量控制策略的策略適應(yīng)度評(píng)分;
54、最優(yōu)控制策略篩選模塊,用于由策略歷史表現(xiàn)評(píng)分和策略適用度評(píng)分計(jì)算得到策略收益,計(jì)算每種流量控制策略的策略失效風(fēng)險(xiǎn),由策略收益和策略失效風(fēng)險(xiǎn)計(jì)算每種流量控制策略對(duì)當(dāng)前流量異常的策略評(píng)分值,將策略評(píng)分值最高的流量控制策略作為最優(yōu)流量控制策略。
55、本技術(shù)的一個(gè)方面提供了一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí),以實(shí)現(xiàn)一種多維度組合的api網(wǎng)關(guān)流量控制方法中的步驟。
56、本技術(shù)的一個(gè)方面提供了一種可讀存儲(chǔ)介質(zhì),所述可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序適于處理器進(jìn)行加載,以執(zhí)行一種多維度組合的api網(wǎng)關(guān)流量控制方法中的步驟。
57、本技術(shù)提出的一種多維度組合的api網(wǎng)關(guān)流量控制方法及系統(tǒng)相對(duì)于現(xiàn)有技術(shù),具備以下優(yōu)點(diǎn):
58、本技術(shù)采用機(jī)器學(xué)習(xí)算法,從多維度海量數(shù)據(jù)中自動(dòng)提取異常特征,構(gòu)建自適應(yīng)的異常檢測(cè)模型,克服了傳統(tǒng)閾值式檢測(cè)的局限性,實(shí)現(xiàn)了異常檢測(cè)的智能化和實(shí)時(shí)性,大幅提升了異常檢測(cè)的準(zhǔn)確率和召回率。通過異常檢測(cè)模型的持續(xù)學(xué)習(xí)和優(yōu)化,可以不斷提升異常檢測(cè)的效果,使系統(tǒng)具備持續(xù)進(jìn)化的能力。
59、本技術(shù)通過訓(xùn)練異常影響范圍預(yù)測(cè)模型,量化預(yù)測(cè)對(duì)api和節(jié)點(diǎn)的影響概率,可實(shí)現(xiàn)更細(xì)粒度的影響范圍判斷,為精細(xì)化控制提供參考。
60、本技術(shù)對(duì)不同的流量異常類型設(shè)計(jì)了相應(yīng)的異常處理策略,在異常發(fā)生時(shí),本技術(shù)可以自動(dòng)評(píng)估流量異常的影響范圍,綜合考慮策略的歷史表現(xiàn)和策略失效風(fēng)險(xiǎn),智能選擇最優(yōu)處理策略,快速阻斷異常蔓延,最大限度地保障業(yè)務(wù)的連續(xù)性和穩(wěn)定性,在優(yōu)化恢復(fù)效果的同時(shí)控制風(fēng)險(xiǎn),實(shí)現(xiàn)了微服務(wù)系統(tǒng)流量異常的自動(dòng)發(fā)現(xiàn)和自愈,提高了系統(tǒng)的智能化運(yùn)維水平。