過載保護方法、裝置及服務(wù)器的制造方法
【專利摘要】本發(fā)明公開了一種過載保護方法、裝置及服務(wù)器,屬于互聯(lián)網(wǎng)通信領(lǐng)域。所述方法包括:分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);從所述m個時間間隔中抽取n個時間間隔,并累計所述n個時間間隔中各自接收到的請求數(shù)的總和,所述n個時間間隔包含當(dāng)前時間所屬的時間間隔;若累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在所述當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求;其中,m和n為大于等于2的整數(shù),且m大于等于n。本發(fā)明解決了現(xiàn)有的過載保護方法不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。
【專利說明】 過載保護方法、裝置及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)通信領(lǐng)域,特別涉及一種過載保護方法、裝置及服務(wù)器。
【背景技術(shù)】
[0002]客戶端/服務(wù)器網(wǎng)是應(yīng)用非常廣泛的一種網(wǎng)絡(luò)模式。其中,客戶端通過請求與服務(wù)器通信,來完成各種數(shù)據(jù)交互。
[0003]為了解決服務(wù)器接收到太多請求時無法有效處理的情況,現(xiàn)有技術(shù)中常應(yīng)用于服務(wù)器中的一種過載保護方法為:第一,服務(wù)器累計一段時間間隔內(nèi)接收到的由一個或者多個客戶端發(fā)送的請求數(shù);第二,服務(wù)器判斷當(dāng)前時間間隔內(nèi)已經(jīng)累計的請求數(shù)是否超過了預(yù)定閾值,如果是,則拒絕在當(dāng)前時間間隔中,超過預(yù)定閾值之后接收到的請求。比如,時間間隔為I秒,預(yù)定閾值為1000個,在第I秒內(nèi),服務(wù)器累計接收到的由客戶端發(fā)送的請求數(shù),在累計的請求數(shù)超過1000個時,拒絕后續(xù)再接收到的請求;在第2秒內(nèi),服務(wù)器從O開始重新累計接收到的請求,如果服務(wù)器在第2秒內(nèi)累計接收到的請求數(shù)一直沒有超過1000個,則一直接收并處理客戶端發(fā)送的請求,依次類推。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),在前一個時間間隔中服務(wù)器已經(jīng)過載的情況下,接下來的一個時間間隔里仍然會繼續(xù)接收不超過預(yù)定閾值個數(shù)的請求來處理,不能有效緩解高峰期時的服務(wù)器過載現(xiàn)象,比如,在前一秒內(nèi)服務(wù)器已經(jīng)接收1000多個請求的情況下,在下一秒服務(wù)器仍然重新開始接收大量的請求直到該秒內(nèi)累計的請求數(shù)超過1000個,使得連續(xù)η秒內(nèi),服務(wù)器每秒都接收1000個請求,導(dǎo)致服務(wù)器一直都處于負(fù)載非常重的運行狀態(tài)。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題,本發(fā)明實施例提供了一種過載保護方法、裝置及服務(wù)器。所述技術(shù)方案如下:
[0006]一方面,提供了一種過載保護方法,所述方法包括:
[0007]分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);
[0008]從所述m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0009]若累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求;
[0010]其中,m和η為大于等于2的整數(shù),且m大于等于η。
[0011]進一步地,所述從所述m個時間間隔中抽取η個時間間隔,包括:
[0012]從所述m個時間間隔中抽取連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
[0013]進一步地,所述從所述m個時間間隔中抽取η個時間間隔,包括:
[0014]從所述m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
[0015]進一步地,所述方法,還包括:
[0016]將所述m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,所述循環(huán)隊列包含至少m個存儲位置,在所述循環(huán)隊列的存儲位置存儲滿之后,將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在所述循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。
[0017]另一方面,提供了一種過載保護裝置,所述裝置包括:
[0018]請求累計模塊,用于分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);
[0019]窗口累計模塊,用于從所述m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0020]請求拒絕模塊,用于若累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求;
[0021]其中,m和η為大于等于2的整數(shù),且m大于等于η。
[0022]進一步地,所述窗口累計模塊,具體用于從所述m個時間間隔中抽取連續(xù)的η個時間間隔,并累計所述η個時間`間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
[0023]進一步地,所述窗口累計模塊,具體用于從所述m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
[0024]進一步地,所述裝置,還包括:隊列存儲模塊;
[0025]所述隊列存儲模塊,用于將所述m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,所述循環(huán)隊列包含至少m個存儲位置,在所述循環(huán)隊列的存儲位置存儲滿之后,將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在所述循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。
[0026]再一方面,還提供了一種服務(wù)器,所述服務(wù)器包括如上另一方面所述的過載保護
>J-U ρ?α裝直。
[0027]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0028]通過在m個時間間隔中抽取η個時間間隔來累計這η個時間間隔中接收到的請求數(shù)的總數(shù),進而在請求數(shù)的總數(shù)達到預(yù)定閾值時,拒絕當(dāng)前時間所屬時間間隔中后續(xù)接收到的請求,解決了現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個相鄰或者相近的時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。
【專利附圖】
【附圖說明】
[0029]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1是本發(fā)明實施例一提供的過載保護方法的方法流程圖;
[0031]圖2是本發(fā)明實施例二提供的過載保護方法的方法流程圖;
[0032]圖3A至圖3C是本發(fā)明實施例二提供的過載保護方法的實施示意圖;
[0033]圖4是本發(fā)明實施例二提供的循環(huán)隊列的實施示意圖;
[0034]圖5是本發(fā)明實施例三提供的過載保護裝置的結(jié)構(gòu)示意圖;
[0035]圖6是本發(fā)明實施例四提供的過載保護裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0036]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0037]實施例一
[0038]請參考圖1,其示出了本發(fā)明實施例一提供的過載保護方法的方法流程圖。本實施例主要以該過載保護方法應(yīng)用于服務(wù)器中來舉例說明。該過載保護方法包括:
[0039]步驟102,分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);
[0040]服務(wù)器分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù)。該m個時間間隔可以為相同間隔長度或者不同間隔長度的連續(xù)的m個時間間隔,通常為相同間隔長度。對于每個時間間隔,服務(wù)器單獨累計該時間間隔內(nèi)接收到的客戶端發(fā)送的請求數(shù)。該連續(xù)的m個時間間隔包含當(dāng)前時間所屬的時間間隔。
[0041]步驟104,從m個時間間隔中抽取η個時間間隔,并累計η個時間間隔中各自接收至IJ的請求數(shù)的總和,該η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0042]服務(wù)器從分別累計的m個時間間隔中抽取連續(xù)或者不連續(xù)的η個時間間隔,并累計η個時間間隔中各自接收到的請求數(shù)的總和,該η個時間間隔也包含當(dāng)前時間所屬的時間間隔。
[0043]步驟106,若累計的請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過預(yù)定閾值之后接收到的請求;其中,m和η為大于等于2的整數(shù),且m大于等于η。
[0044]若累計的η個時間間隔的請求數(shù)的總和超過了預(yù)定閾值,則服務(wù)器拒絕在當(dāng)前時間所屬的時間間隔中,超過預(yù)定閾值之后接收到的請求。
[0045]綜上所述,本實施例提供的過載保護方法,通過在m個時間間隔中抽取η個時間間隔來累計這η個時間間隔中接收到的請求數(shù)的總數(shù),進而在請求數(shù)的總數(shù)達到預(yù)定閾值時,拒絕當(dāng)前時間所屬時間間隔中后續(xù)接收到的請求,解決了現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個相鄰或者相近的時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。
[0046]實施例二
[0047]請參考圖2,其示出了本發(fā)明實施例二提供的過載保護方法的方法流程圖。本實施例主要以該過載保護方法應(yīng)用于服務(wù)器中來舉例說明。該過載保護方法包括:
[0048]步驟202,分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);[0049]服務(wù)器分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù)。該m個時間間隔可以為相同間隔長度或者不同間隔長度的連續(xù)的m個時間間隔,優(yōu)選為相同間隔長度。對于每個時間間隔,服務(wù)器單獨累計該時間間隔內(nèi)接收到的客戶端發(fā)送的請求數(shù)。該連續(xù)的m個時間間隔包含當(dāng)前時間所屬的時間間隔。
[0050]在圖3A所示的一個具體示例中,服務(wù)器分別累計16個時間間隔中各自接收到的請求數(shù),每一個時間間隔的間隔長度都是1/6秒。對于每個時間間隔,服務(wù)器都累計該時間間隔內(nèi)接收到的客戶端發(fā)送的請求數(shù)。
[0051]步驟204,從m個時間間隔中抽取η個時間間隔,并累計η個時間間隔中各自接收至IJ的請求數(shù)的總和,該η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0052]具體地講,本步驟存在兩類實現(xiàn)方式:
[0053]第一,服務(wù)器從m個時間間隔中抽取連續(xù)的η個時間間隔,并累計該η個時間間隔中各自接收到的請求數(shù)的總和,該η個時間間隔中的最后一個時間間隔為當(dāng)前時間所屬的時間間隔;
[0054]該實現(xiàn)方式也可以稱之為“滑動窗口實現(xiàn)方式”,繼續(xù)結(jié)合參考圖3Α,服務(wù)器可以從16個時間間隔中抽取連續(xù)的6個時間間隔,比如,這6個時間間隔可以為這16個時間間隔中的第3到9個時間間隔,然后服務(wù)器累計這6個時間間隔中各自接收到的請求數(shù)的總和,也即一秒內(nèi)服務(wù)器接收到的請求數(shù)的總和。這6個時間間隔中的最后一個時間間隔為當(dāng)前時間所屬的時間間隔。
[0055]顯然,如果當(dāng)前時間進入到下一個1/6秒,則服務(wù)器可以抽取第4到10個時間間隔作為η個時間間隔。在此種實現(xiàn)方式中,m可以等于η,也即服務(wù)器可以分別且僅累計6個時間間隔各自接收到的請求書的總和,在當(dāng)前時間進入下一個1/6秒時,服務(wù)器丟棄上次6個時間間隔中對第I個時間間隔累計的請求數(shù),然后新增加對下I個時間間隔中接收到的請求數(shù)的累計。
[0056]需要說明的是,圖3Α中同時示出了當(dāng)前時間之后的,處于未來的時間間隔以及對應(yīng)的請求數(shù),這僅是為了示意性地說明,在具體實現(xiàn)時,未來的時間間隔對應(yīng)的請求數(shù)均為O0
[0057]第二,服務(wù)器從m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計η個時間間隔中各自接收到的請求數(shù)的總和,該η個時間間隔中的最后一個時間間隔為當(dāng)前時間所屬的時間間隔。
[0058]當(dāng)然,服務(wù)器也可以從m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔。該預(yù)定順序可以是抽取η個時間間隔,每兩個時間間隔之間相間相同個數(shù)的時間間隔,t匕如圖3B所示,服務(wù)器可以抽取6個時間間隔,每兩個時間間隔之間相間I個時間間隔;也可以是抽取η個時間間隔,每兩個時間間隔之間相間不同個數(shù)的時間間隔,比如圖3C所示,服務(wù)器可以抽取6個時間間隔,分別是第I個、第6個、第10個、第13個、第15個和第16個時間間隔,其中,第16個時間間隔為當(dāng)前時間所屬的時間間隔。
[0059]總之,以該η個時間間隔能夠代表一段時間內(nèi)服務(wù)器接收到的請求數(shù)的總體趨勢即可。具體按照何種預(yù)定順序來抽取不連續(xù)的η個時間間隔,本文不做具體限定。在此種實現(xiàn)方式中,m通常都大于η。也即服務(wù)器可以分別累計16個時間間隔各自接收到的請求書的總和,然后按照預(yù)定順序從中選出包含當(dāng)前時間所屬的時間間隔的6個時間間隔,在當(dāng)前時間進入下一個1/6秒時,服務(wù)器丟棄上次16個時間間隔中對第I個時間間隔累計的請求數(shù),然后新增加對下I個時間間隔中接收到的請求數(shù)的累計,并重新按照預(yù)定順序從16個時間間隔中選出包含當(dāng)前時間所屬的時間間隔的6個時間間隔。
[0060]步驟206,若累計的請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過預(yù)定閾值之后接收到的請求;
[0061]在服務(wù)器累計η個時間間隔中各自接收到的請求數(shù)的總和的過程中,服務(wù)器可以實時監(jiān)測累計的請求數(shù)的總和是否超過了預(yù)定閾值,若累計的請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過預(yù)定閾值之后接收到的請求。
[0062]步驟208,若累計的請求數(shù)的總和未超過預(yù)定閾值,則處理接收到的請求。
[0063]另外,如果服務(wù)器實時監(jiān)測累計的請求數(shù)的總和未超過了預(yù)定閾值,則服務(wù)器可以一直接收并處理接收到的請求。
[0064]仍然結(jié)合圖3Α來說明步驟206和步驟208,假設(shè)預(yù)定閾值為365,以5次抽取過程為例,在第一次抽取的6個時間間隔中,服務(wù)器累計的請求數(shù)的總和為:45+46+98+54+76+24=343個,未超過預(yù)定閾值,服務(wù)器一直接收并處理接收到的請求;在第二次抽取的6個時間間隔中,服務(wù)器累計的請求數(shù)的總和為:46+98+54+76+24+57=355個,未超過預(yù)定閾值,服務(wù)器一直接收并處理接收到的請求;在第三次抽取的6個時間間隔中,服務(wù)器累計的請求數(shù)的總和為:98+54+76+24+57+68=377個,超過預(yù)定閾值365,服務(wù)器在接收到365個請求之后,拒絕處理之后接收到第366到377個請求;在第四次抽取的6個時間間隔中,服務(wù)器累計的請求數(shù)的總和為:54+76+24+57+68+83=362個,未超過預(yù)定閾值365,服務(wù)器一直接收并處理接收到的請求;在第五次抽取的6個時間間隔中服務(wù)器累計的請求數(shù)的總和為:76+24+57+68+83+28=336個,未超過預(yù)定閾值35,服務(wù)器一直接收并處理接收到的請求。
[0065]需要補充說明的是,由于時間是在不斷的推進,在步驟202中,服務(wù)器將m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,該循環(huán)隊列包含至少m個存儲位置,在循環(huán)隊列的存儲位置存儲滿之后,服務(wù)器會將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。結(jié)合參考圖4,仍然假設(shè)服務(wù)器分別累計16個時間間隔各自接收到的請求數(shù),同時設(shè)置包含16個存儲位置的循環(huán)隊列來存儲該16個時間間隔各自接收到的請求數(shù)。具體地講,該16個時間間隔各自接收到的請求數(shù)會依次存儲到循環(huán)隊列的各個存儲位置中,此時,循環(huán)隊列所有的存儲位置都被存儲滿;在此之后,當(dāng)服務(wù)器再次對第17個時間間隔開始累計請求數(shù)時,可以將第17個時間間隔對應(yīng)的請求數(shù)覆蓋在循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置進行存儲,依次類推,周而復(fù)始地對各個時間間隔中的請求數(shù)進行存儲。
[0066]綜上所述,本實施例提供的過載保護方法,通過在m個時間間隔中抽取η個時間間隔來累計這η個時間間隔中接收到的請求數(shù)的總數(shù),進而在請求數(shù)的總數(shù)達到預(yù)定閾值時,拒絕當(dāng)前時間所屬時間間隔中后續(xù)接收到的請求,解決了現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個相鄰或者相近的時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。同時,還通過采用循環(huán)隊列來存儲m個時間間隔各自接收到的累計數(shù),可以達到避免數(shù)據(jù)溢出,節(jié)省存儲空間的效果。[0067]實施例三
[0068]請參考圖5,其示出了本發(fā)明實施例三提供的過載保護裝置的結(jié)構(gòu)方框圖。該過載保護裝置可以實現(xiàn)成為服務(wù)器或者服務(wù)器中的一部分。該過載保護裝置包括請求累計模塊520、窗口累計模塊540和請求拒絕模塊560。
[0069]請求累計模塊520,用于分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);
[0070]窗口累計模塊540,用于從所述請求累計模塊520分別累計的m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0071]請求拒絕模塊560,用于若所述窗口累計模塊540累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求;
[0072]其中,m和η為大于等于2的整數(shù),且m大于等于η。
[0073]綜上所述,本實施例提供的過載保護裝置,通過在m個時間間隔中抽取η個時間間隔來累計這η個時間間隔中接收到的請求數(shù)的總數(shù),進而在請求數(shù)的總數(shù)達到預(yù)定閾值時,拒絕當(dāng)前時間所屬時間間隔中后續(xù)接收到的請求,解決了現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個相鄰或者相近的時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。
[0074]實施例四
[0075]請參考圖6,其示出了本發(fā)明實施例三提供的過載保護裝置的結(jié)構(gòu)方框圖。該過載保護裝置可以實現(xiàn)成為服務(wù)器或者服務(wù)器中的一部分。該過載保護裝置包括請求累計模塊520、隊列存儲模塊530、窗口累計模塊540、請求拒絕模塊560和請求處理模塊580。
[0076]請求累計模塊520,用于分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù);
[0077]窗口累計模塊540,用于從所述請求累計模塊520分別累計的m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔;
[0078]請求拒絕模塊560,用于若所述窗口累計模塊540累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求;
[0079]請求處理模塊580,用于若所述窗口累計模塊540累計的所述請求數(shù)的總和未超過預(yù)定閾值,則處理接收到的請求;
[0080]其中,m和η為大于等于2的整數(shù),且m大于等于η。
[0081]具體地講,所述窗口累計模塊540,可以具體用于從所述請求累計模塊520分別累計的m個時間間隔中抽取連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。所述窗口累計模塊540,還可以具體用于從所述m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
[0082]優(yōu)選地,所述隊列存儲模塊530,用于將所述請求累計模塊520分別累計的m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,所述循環(huán)隊列包含至少m個存儲位置,在所述循環(huán)隊列的存儲位置存儲滿之后,將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在所述循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。
[0083]綜上所述,本實施例提供的過載保護裝置,通過在m個時間間隔中抽取η個時間間隔來累計這η個時間間隔中接收到的請求數(shù)的總數(shù),進而在請求數(shù)的總數(shù)達到預(yù)定閾值時,拒絕當(dāng)前時間所屬時間間隔中后續(xù)接收到的請求,解決了現(xiàn)有的過載保護方法僅關(guān)注當(dāng)前時間間隔的累計數(shù),而不能有效緩解高峰期時的服務(wù)器過載的問題;達到了對多個相鄰或者相近的時間間隔中的累計數(shù)綜合累計來實現(xiàn)過載保護,從而有效地緩解高峰期時的服務(wù)器過載的效果。同時,還通過采用循環(huán)隊列來存儲m個時間間隔各自接收到的累計數(shù),可以達到避免數(shù)據(jù)溢出,節(jié)省存儲空間的效果。
[0084]需要說明的是:上述實施例提供的過載保護裝置在保護服務(wù)器過載時,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的過載保護裝置與過載保護方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0085]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0086]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0087]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種過載保護方法,其特征在于,所述方法包括: 分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù); 從所述m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔; 若累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在所述當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求; 其中,m和η為大于等于2的整數(shù),且m大于等于η。
2.根據(jù)權(quán)利要求1所述的過載保護方法,其特征在于,所述從所述m個時間間隔中抽取η個時間間隔,包括: 從所述m個時間間隔中抽取連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
3.根據(jù)權(quán)利要求1所述的過載保護方法,其特征在于,所述從所述m個時間間隔中抽取η個時間間隔,包括: 從所述m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
4.根據(jù)權(quán)利要求1至3任一所述的過載保護方法,其特征在于,所述方法,還包括: 將所述m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,所述循環(huán)隊列包含至少m個存儲位置,在所述循環(huán)隊列的存儲位置存儲滿之后,將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在所述循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。
5.一種過載保護裝置,其特征在于,所述裝置包括: 請求累計模塊,用于分別累計連續(xù)的m個時間間隔中各自接收到的請求數(shù); 窗口累計模塊,用于從所述m個時間間隔中抽取η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔包含當(dāng)前時間所屬的時間間隔; 請求拒絕模塊,用于若累計的所述請求數(shù)的總和超過預(yù)定閾值,則拒絕在所述當(dāng)前時間所屬的時間間隔中,超過所述預(yù)定閾值之后接收到的請求; 其中,m和η為大于等于2的整數(shù),且m大于等于η。
6.根據(jù)權(quán)利要求5所述的過載保護裝置,其特征在于,所述窗口累計模塊,具體用于從所述m個時間間隔中抽取連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
7.根據(jù)權(quán)利要求5所述的過載保護裝置,其特征在于,所述窗口累計模塊,具體用于從所述m個時間間隔中按照預(yù)定順序抽取不連續(xù)的η個時間間隔,并累計所述η個時間間隔中各自接收到的請求數(shù)的總和,所述η個時間間隔中的最后一個時間間隔為所述當(dāng)前時間所屬的時間間隔。
8.根據(jù)權(quán)利要求5至7任一所述的過載保護裝置,其特征在于,所述裝置,還包括:隊列存儲模塊; 所述隊列存儲模塊,用于將所述m個時間間隔中各自接收到的請求數(shù)依次存儲入循環(huán)隊列中,所述循環(huán)隊列包含至少m個存儲位置,在所述循環(huán)隊列的存儲位置存儲滿之后,將最新一個時間間隔所對應(yīng)的請求數(shù)覆蓋存儲在所述循環(huán)隊列中最早一個時間間隔所對應(yīng)的存儲位置中。
9.一種服務(wù)器,其特征在于,所述服務(wù)器包括如權(quán)利要求5至8任一所述的過載保護裝置。`
【文檔編號】H04L29/08GK103685336SQ201210319293
【公開日】2014年3月26日 申請日期:2012年8月31日 優(yōu)先權(quán)日:2012年8月31日
【發(fā)明者】唐孟松 申請人:騰訊科技(深圳)有限公司