本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種訪問(wèn)請(qǐng)求的控制方法和裝置。
背景技術(shù):
網(wǎng)站的后臺(tái)服務(wù)器對(duì)于用戶訪問(wèn)網(wǎng)絡(luò)所生成的訪問(wèn)請(qǐng)求的接入量會(huì)有流量限制的功能。當(dāng)用戶的訪問(wèn)接入量突增,出現(xiàn)大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況時(shí),會(huì)造成后臺(tái)服務(wù)器過(guò)載,甚至宕機(jī),因此,有必要對(duì)大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求進(jìn)行動(dòng)態(tài)控制,以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)訪問(wèn)接入量進(jìn)行限流。
相關(guān)技術(shù)中,通過(guò)手動(dòng)方式設(shè)置一段時(shí)間內(nèi)的網(wǎng)絡(luò)的最大訪問(wèn)接入量,或者,通過(guò)線性回歸法預(yù)測(cè)在當(dāng)前一段時(shí)間內(nèi)的網(wǎng)絡(luò)訪問(wèn)接入量。第一種方式下,未有結(jié)合服務(wù)器負(fù)載指數(shù)的因素動(dòng)態(tài)控制網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,第二種方式下,訪問(wèn)請(qǐng)求的限流效果差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
為此,本發(fā)明的一個(gè)目的在于提出一種訪問(wèn)請(qǐng)求的控制方法,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
本發(fā)明的另一個(gè)目的在于提出一種訪問(wèn)請(qǐng)求的控制裝置。
為達(dá)到上述目的,本發(fā)明第一方面實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法,包括:接收訪問(wèn)請(qǐng)求,并確定在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值;獲取服務(wù)器在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),并對(duì)所述估計(jì)值和所述負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值;判斷所述目標(biāo)值是否大于預(yù)設(shè)閾值,得到判斷結(jié)果;根據(jù)所述判斷結(jié)果對(duì)所述訪問(wèn)請(qǐng)求進(jìn)行控制。
在本發(fā)明的一個(gè)實(shí)施例中,所述根據(jù)所述判斷結(jié)果對(duì)所述訪問(wèn)請(qǐng)求進(jìn)行控制,包括:
如果所述判斷結(jié)果為所述目標(biāo)值大于所述預(yù)設(shè)閾值,則丟棄所述訪問(wèn)請(qǐng)求;
如果所述判斷結(jié)果為所述目標(biāo)值小于或等于所述預(yù)設(shè)閾值,則對(duì)所述訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
在本發(fā)明的一個(gè)實(shí)施例中,在所述接收訪問(wèn)請(qǐng)求之前,還包括:
獲取所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息;
根據(jù)所述接入量信息配置日志文件。
在本發(fā)明的一個(gè)實(shí)施例中,所述確定在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,包括:
從所述日志文件中讀取在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前,且與所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)相鄰的時(shí)間點(diǎn)上的接入量信息,得到目標(biāo)接入量信息;
根據(jù)接入量預(yù)測(cè)模型和所述目標(biāo)接入量信息確定在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
在本發(fā)明的一個(gè)實(shí)施例中,所述接入量信息包括至少一個(gè)時(shí)間點(diǎn)中的每個(gè)時(shí)間點(diǎn)上的接入量的估計(jì)值和實(shí)際值。
在本發(fā)明的一個(gè)實(shí)施例中,所述獲取服務(wù)器在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),包括:
將所述服務(wù)器在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù),和所述服務(wù)器所能承載的最大請(qǐng)求連接數(shù)的比值作為所述負(fù)載指數(shù)。
本發(fā)明第一方面實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法,通過(guò)根據(jù)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值,并根據(jù)目標(biāo)值與預(yù)設(shè)閾值做判斷后得到的判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
為達(dá)到上述目的,本發(fā)明第二方面實(shí)施例提出的訪問(wèn)請(qǐng)求的控制裝置,包括:確定模塊,用于接收訪問(wèn)請(qǐng)求,并確定在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值;第一獲取模塊,用于獲取服務(wù)器在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),并對(duì)所述估計(jì)值和所述負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值;判斷模塊,用于判斷所述目標(biāo)值是否大于預(yù)設(shè)閾值,得到判斷結(jié)果;控制模塊,用于根據(jù)所述判斷結(jié)果對(duì)所述訪問(wèn)請(qǐng)求進(jìn)行控制。
在本發(fā)明的一個(gè)實(shí)施例中,所述控制模塊包括:
丟棄子模塊,用于在所述判斷結(jié)果為所述目標(biāo)值大于所述預(yù)設(shè)閾值時(shí),丟棄所述訪問(wèn)請(qǐng)求;
處理子模塊,用于在所述判斷結(jié)果為所述目標(biāo)值小于或等于所述預(yù)設(shè)閾值時(shí),對(duì)所述訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
在本發(fā)明的一個(gè)實(shí)施例中,還包括:
第二獲取模塊,用于獲取所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息;
配置模塊,用于根據(jù)所述接入量信息配置日志文件。
在本發(fā)明的一個(gè)實(shí)施例中,所述確定模塊包括:
讀取子模塊,用于從所述日志文件中讀取在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前,且與所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)相鄰的時(shí)間點(diǎn)上的接入量信息,得到目標(biāo)接入量信息;
確定子模塊,用于根據(jù)接入量預(yù)測(cè)模型和所述目標(biāo)接入量信息確定在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
在本發(fā)明的一個(gè)實(shí)施例中,所述接入量信息包括至少一個(gè)時(shí)間點(diǎn)中的每個(gè)時(shí)間點(diǎn)上的接入量的估計(jì)值和實(shí)際值。
在本發(fā)明的一個(gè)實(shí)施例中,所述第一獲取模塊還用于:
將所述服務(wù)器在所述訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù),和所述服務(wù)器所能承載的最大請(qǐng)求連接數(shù)的比值作為所述負(fù)載指數(shù)。
本發(fā)明第二方面實(shí)施例提出的訪問(wèn)請(qǐng)求的控制裝置,通過(guò)根據(jù)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值,并根據(jù)目標(biāo)值與預(yù)設(shè)閾值做判斷后得到的判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
附圖說(shuō)明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法的流程示意圖;
圖2是本發(fā)明另一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法的流程示意圖;
圖3是本發(fā)明一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明另一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本發(fā)明一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法的流程示意圖。
參見(jiàn)圖1,該方法包括:
S11:接收訪問(wèn)請(qǐng)求,并確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
用戶在訪問(wèn)互聯(lián)網(wǎng)的過(guò)程中,會(huì)觸發(fā)客戶端的瀏覽器生成訪問(wèn)請(qǐng)求,例如,用戶在某互聯(lián)網(wǎng)站的注冊(cè)頁(yè)面填寫注冊(cè)信息,點(diǎn)擊提交按鈕,會(huì)觸發(fā)客戶端的瀏覽器向服務(wù)器提交注冊(cè)表單的訪問(wèn)請(qǐng)求,以使服務(wù)器對(duì)注冊(cè)表單的訪問(wèn)請(qǐng)求進(jìn)行業(yè)務(wù)處理。
網(wǎng)站的后臺(tái)服務(wù)器對(duì)于用戶訪問(wèn)網(wǎng)絡(luò)所生成的訪問(wèn)請(qǐng)求的接入量會(huì)有流量限制的功能。當(dāng)用戶的訪問(wèn)接入量突增,出現(xiàn)大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況時(shí),會(huì)造成后臺(tái)服務(wù)器過(guò)載,甚至宕機(jī),因此,有必要對(duì)大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求進(jìn)行動(dòng)態(tài)控制,以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)訪問(wèn)接入量進(jìn)行限流。
相關(guān)技術(shù)中,通過(guò)手動(dòng)方式設(shè)置一段時(shí)間內(nèi)的網(wǎng)絡(luò)的最大訪問(wèn)接入量,或者,通過(guò)線性回歸法預(yù)測(cè)在當(dāng)前一段時(shí)間內(nèi)的網(wǎng)絡(luò)訪問(wèn)接入量。第一種方式下,未有結(jié)合服務(wù)器負(fù)載指數(shù)的因素動(dòng)態(tài)控制網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,第二種方式下,訪問(wèn)請(qǐng)求的限流效果差。
而本發(fā)明的實(shí)施例中,通過(guò)結(jié)合在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)動(dòng)態(tài)控制網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
其中,訪問(wèn)請(qǐng)求的時(shí)間點(diǎn),例如為用戶觸發(fā)客戶端的瀏覽器生成訪問(wèn)請(qǐng)求,瀏覽器將該訪問(wèn)請(qǐng)求發(fā)送至服務(wù)器的時(shí)間節(jié)點(diǎn)。
網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值為訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)的后臺(tái)服務(wù)器所能承載的訪問(wèn)請(qǐng)求接入量的預(yù)測(cè)值。
具體地,可以根據(jù)在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)來(lái)預(yù)測(cè)網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
可選地,確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,包括:從日志文件中讀取在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前,且與訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)相鄰的時(shí)間點(diǎn)上的接入量信息,得到目標(biāo)接入量信息;根據(jù)接入量預(yù)測(cè)模型和目標(biāo)接入量信息確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
S12:獲取服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),并對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值。
可以理解的是,根據(jù)服務(wù)器的工作機(jī)制,在不同的時(shí)間點(diǎn)上,服務(wù)器的負(fù)載指數(shù)可以不同或者相同。
可選地,可以將服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù),和服務(wù)器所能承載的最大請(qǐng)求連接數(shù)的比值作為負(fù)載指數(shù)。
進(jìn)一步地,可以對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值。
其中,目標(biāo)值用于標(biāo)記在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量,該網(wǎng)絡(luò)訪問(wèn)接入量結(jié)合了在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)。
S13:判斷目標(biāo)值是否大于預(yù)設(shè)閾值,得到判斷結(jié)果。
其中,預(yù)設(shè)閾值可以根據(jù)經(jīng)驗(yàn)設(shè)定,預(yù)設(shè)閾值標(biāo)記在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量。
可以將目標(biāo)值和預(yù)設(shè)閾值做比對(duì),得到目標(biāo)值大于預(yù)設(shè)閾值,或者目標(biāo)值小于或者等于預(yù)設(shè)閾值的判斷結(jié)果。
可以理解的是,當(dāng)目標(biāo)值大于預(yù)設(shè)閾值時(shí),表示在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量大于網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量,此時(shí),可以對(duì)訪問(wèn)請(qǐng)求進(jìn)行限流處理,限流處理例如為丟棄訪問(wèn)請(qǐng)求,當(dāng)目標(biāo)值小于或者等于預(yù)設(shè)閾值時(shí),表示在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量小于或者等于網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量,此時(shí),可以不對(duì)訪問(wèn)請(qǐng)求進(jìn)行限流處理,例如對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
S14:根據(jù)判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制。
可選地,根據(jù)判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,包括:如果判斷結(jié)果為目標(biāo)值大于預(yù)設(shè)閾值,則丟棄訪問(wèn)請(qǐng)求;如果判斷結(jié)果為目標(biāo)值小于或等于預(yù)設(shè)閾值,則對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
本實(shí)施例中,通過(guò)根據(jù)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值,并根據(jù)目標(biāo)值與預(yù)設(shè)閾值做判斷后得到的判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
圖2是本發(fā)明另一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制方法的流程示意圖。
參見(jiàn)圖2,該方法包括:
S201:獲取訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息。
其中,訪問(wèn)請(qǐng)求的時(shí)間點(diǎn),例如為用戶觸發(fā)客戶端的瀏覽器生成訪問(wèn)請(qǐng)求,瀏覽器將該訪問(wèn)請(qǐng)求發(fā)送至服務(wù)器的時(shí)間節(jié)點(diǎn)。
可選地,接入量信息包括至少一個(gè)時(shí)間點(diǎn)中的每個(gè)時(shí)間點(diǎn)上的接入量的估計(jì)值和實(shí)際值。
S202:根據(jù)接入量信息配置日志文件。
通過(guò)獲取訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息,并根據(jù)接入量信息配置日志文件,能夠?qū)W(wǎng)絡(luò)訪問(wèn)的歷史時(shí)間點(diǎn)的接入量信息進(jìn)行統(tǒng)計(jì),以便后續(xù)根據(jù)歷史時(shí)間點(diǎn)的接入量信息推測(cè)在接收到訪問(wèn)請(qǐng)求的時(shí)刻網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,有效增強(qiáng)訪問(wèn)請(qǐng)求的限流效果。
S203:接收訪問(wèn)請(qǐng)求。
用戶在訪問(wèn)互聯(lián)網(wǎng)的過(guò)程中,會(huì)觸發(fā)客戶端的瀏覽器生成訪問(wèn)請(qǐng)求,例如,用戶在某互聯(lián)網(wǎng)站的注冊(cè)頁(yè)面填寫注冊(cè)信息,點(diǎn)擊提交按鈕,會(huì)觸發(fā)客戶端的瀏覽器向服務(wù)器提交注冊(cè)表單的訪問(wèn)請(qǐng)求,以使服務(wù)器對(duì)注冊(cè)表單的訪問(wèn)請(qǐng)求進(jìn)行業(yè)務(wù)處理。
S204:從日志文件中讀取在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前,且與訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)相鄰的時(shí)間點(diǎn)上的接入量信息,得到目標(biāo)接入量信息。
在本發(fā)明的實(shí)施例中,目標(biāo)接入量信息標(biāo)記訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的,最接近訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)的一個(gè)時(shí)間點(diǎn)的接入量信息,可以根據(jù)目標(biāo)接入量信息推測(cè)出在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
S205:根據(jù)接入量預(yù)測(cè)模型和目標(biāo)接入量信息確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
其中,接入量預(yù)測(cè)模型可以例如為指數(shù)平滑算法。指數(shù)平滑算法的公式如下:
其中,amount(tk)表示時(shí)間序列為tk時(shí)網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,表示時(shí)間序列為tk時(shí)網(wǎng)絡(luò)訪問(wèn)接入量的實(shí)際值,α∈[0,1]為調(diào)節(jié)因子,根據(jù)經(jīng)驗(yàn),α可以取值為0.6。
具體地,可以根據(jù)上述指數(shù)平滑算法和目標(biāo)接入量信息確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
通過(guò)根據(jù)歷史時(shí)間點(diǎn)的接入量信息推測(cè)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,能夠有效推測(cè)出大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況,有效提升網(wǎng)絡(luò)訪問(wèn)接入量的限流效果。
S206:將服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù),和服務(wù)器所能承載的最大請(qǐng)求連接數(shù)的比值作為負(fù)載指數(shù)。
可選地,假設(shè)服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù)為m',服務(wù)器所能承載的最大請(qǐng)求連接數(shù)為m,則根據(jù)下述公式得到服務(wù)器的負(fù)載指數(shù)為:
loadFactor(server)=m'/m;
本步驟中,通過(guò)計(jì)算得到服務(wù)器的負(fù)載指數(shù),可以不僅考慮訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,而且綜合考慮服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),進(jìn)一步提升網(wǎng)絡(luò)訪問(wèn)接入量的限流效果。
S207:對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值。
其中,目標(biāo)值用于標(biāo)記在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量,該網(wǎng)絡(luò)訪問(wèn)接入量結(jié)合了在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)。
例如,可以采用下述公式對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值:
currentLimit(tk)=β·amount(tk)+λ·loadFactor(server);
其中,β、λ為調(diào)節(jié)因子,且β+λ=1,β、λ的可以根據(jù)經(jīng)驗(yàn)取值,當(dāng)網(wǎng)絡(luò)訪問(wèn)接入量的變化幅度較大時(shí),β取值較大,例如可以取值0.7,而當(dāng)網(wǎng)絡(luò)訪問(wèn)接入量的變化幅度較小時(shí),β取值較小,例如可以取值為0.4以下。
本步驟中,通過(guò)根據(jù)網(wǎng)絡(luò)訪問(wèn)接入量的變化幅度確定調(diào)節(jié)因子的值,在不同的網(wǎng)絡(luò)訪問(wèn)接入量下采用不同數(shù)值的調(diào)節(jié)因子對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,能夠有效提升網(wǎng)絡(luò)訪問(wèn)接入量的限流靈活性,提升該方法在大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況下的適用性。
S208:判斷目標(biāo)值是否大于預(yù)設(shè)閾值,得到判斷結(jié)果。
其中,預(yù)設(shè)閾值可以根據(jù)經(jīng)驗(yàn)設(shè)定,預(yù)設(shè)閾值標(biāo)記在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量。
可以將目標(biāo)值和預(yù)設(shè)閾值做比對(duì),得到目標(biāo)值大于預(yù)設(shè)閾值,或者目標(biāo)值小于或者等于預(yù)設(shè)閾值的判斷結(jié)果。
S209:如果判斷結(jié)果為目標(biāo)值大于預(yù)設(shè)閾值,則丟棄訪問(wèn)請(qǐng)求。
可以理解的是,當(dāng)目標(biāo)值大于預(yù)設(shè)閾值時(shí),表示在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量大于網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量,此時(shí),可以對(duì)訪問(wèn)請(qǐng)求進(jìn)行限流處理,限流處理例如為丟棄訪問(wèn)請(qǐng)求。
S210:如果判斷結(jié)果為目標(biāo)值小于或等于預(yù)設(shè)閾值,則對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
可以理解的是,當(dāng)目標(biāo)值小于或者等于預(yù)設(shè)閾值時(shí),表示在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量小于或者等于網(wǎng)絡(luò)的后臺(tái)服務(wù)器實(shí)際可以承載的訪問(wèn)請(qǐng)求的接入量,此時(shí),可以不對(duì)訪問(wèn)請(qǐng)求進(jìn)行限流處理,例如對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
本實(shí)施例中,通過(guò)獲取訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息,并根據(jù)接入量信息配置日志文件,能夠?qū)W(wǎng)絡(luò)訪問(wèn)的歷史時(shí)間點(diǎn)的接入量信息進(jìn)行統(tǒng)計(jì),以便后續(xù)根據(jù)歷史時(shí)間點(diǎn)的接入量信息推測(cè)在接收到訪問(wèn)請(qǐng)求的時(shí)刻網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,有效增強(qiáng)訪問(wèn)請(qǐng)求的限流效果。通過(guò)根據(jù)歷史時(shí)間點(diǎn)的接入量信息推測(cè)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,能夠有效推測(cè)出大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況,有效提升網(wǎng)絡(luò)訪問(wèn)接入量的限流效果。通過(guò)計(jì)算得到服務(wù)器的負(fù)載指數(shù),可以不僅考慮訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,而且綜合考慮服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),進(jìn)一步提升網(wǎng)絡(luò)訪問(wèn)接入量的限流效果。通過(guò)根據(jù)網(wǎng)絡(luò)訪問(wèn)接入量的變化幅度確定調(diào)節(jié)因子的值,在不同的網(wǎng)絡(luò)訪問(wèn)接入量下采用不同數(shù)值的調(diào)節(jié)因子對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,能夠有效提升網(wǎng)絡(luò)訪問(wèn)接入量的限流靈活性,提升該方法在大規(guī)模集中訪問(wèn)網(wǎng)絡(luò)的情況下的適用性。通過(guò)根據(jù)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值,并根據(jù)目標(biāo)值與預(yù)設(shè)閾值做判斷后得到的判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
圖3是本發(fā)明一實(shí)施例提出的訪問(wèn)請(qǐng)求的控制裝置的結(jié)構(gòu)示意圖。該訪問(wèn)請(qǐng)求的控制裝置300可以通過(guò)軟件、硬件或者兩者的結(jié)合實(shí)現(xiàn)。
參見(jiàn)圖3,該訪問(wèn)請(qǐng)求的控制裝置300可以包括:確定模塊310、第一獲取模塊320、判斷模塊330,以及控制模塊340。其中,
確定模塊310,用于接收訪問(wèn)請(qǐng)求,并確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
第一獲取模塊320,用于獲取服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù),并對(duì)估計(jì)值和負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值。
可選地,第一獲取模塊320還用于:
將服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的實(shí)際請(qǐng)求連接數(shù),和服務(wù)器所能承載的最大請(qǐng)求連接數(shù)的比值作為負(fù)載指數(shù)。
判斷模塊330,用于判斷目標(biāo)值是否大于預(yù)設(shè)閾值,得到判斷結(jié)果。
控制模塊340,用于根據(jù)判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制。
一些實(shí)施例中,參見(jiàn)圖4,該訪問(wèn)請(qǐng)求的控制裝置300還可以包括:
可選地,控制模塊340包括:
丟棄子模塊341,用于在判斷結(jié)果為目標(biāo)值大于預(yù)設(shè)閾值時(shí),丟棄訪問(wèn)請(qǐng)求。
處理子模塊342,用于在判斷結(jié)果為目標(biāo)值小于或等于預(yù)設(shè)閾值時(shí),對(duì)訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)處理。
第二獲取模塊350,用于獲取訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前的至少一個(gè)時(shí)間點(diǎn)的接入量信息。
配置模塊360,用于根據(jù)接入量信息配置日志文件。
可選地,確定模塊310包括:
讀取子模塊311,用于從日志文件中讀取在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)之前,且與訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)相鄰的時(shí)間點(diǎn)上的接入量信息,得到目標(biāo)接入量信息。
可選地,接入量信息包括至少一個(gè)時(shí)間點(diǎn)中的每個(gè)時(shí)間點(diǎn)上的接入量的估計(jì)值和實(shí)際值。
確定子模塊312,用于根據(jù)接入量預(yù)測(cè)模型和目標(biāo)接入量信息確定在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值。
需要說(shuō)明的是,前述圖1-圖2實(shí)施例中對(duì)訪問(wèn)請(qǐng)求的控制方法實(shí)施例的解釋說(shuō)明也適用于該實(shí)施例的訪問(wèn)請(qǐng)求的控制裝置,其實(shí)現(xiàn)原理類似,此處不再贅述。
本實(shí)施例中,通過(guò)根據(jù)訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上,網(wǎng)絡(luò)訪問(wèn)接入量的估計(jì)值,和服務(wù)器在訪問(wèn)請(qǐng)求的時(shí)間點(diǎn)上的負(fù)載指數(shù)進(jìn)行加權(quán)求和處理,得到目標(biāo)值,并根據(jù)目標(biāo)值與預(yù)設(shè)閾值做判斷后得到的判斷結(jié)果對(duì)訪問(wèn)請(qǐng)求進(jìn)行控制,能夠有效避免服務(wù)器過(guò)載,且提升訪問(wèn)請(qǐng)求的限流效果。
需要說(shuō)明的是,在本發(fā)明的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本發(fā)明的描述中,除非另有說(shuō)明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。
流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場(chǎng)可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
此外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。