伺服器、基於延時隊列的限流保護系統及方法與流程
2023-05-29 03:10:01
本發明涉及計算機通信技術領域,尤其涉及一種伺服器、基於延時隊列的限流保護系統及方法。
背景技術:
目前,對於高並發請求,伺服器為了進行過載保護通常會設置先入先出(First Input First Output,FIFO)隊列。
為了限制並發請求的處理數量可以進行信號量控制,其中,拿到信事情令牌的請求則允許伺服器進入處理,沒有拿到信事情令牌的請求則視為過載而返回繁忙信息。此外,進一步地,還可以通過計數器和時間控制固定時間區間內通過的請求量進行限流保護。
但現有的隊列保護策略只能針對伺服器處理能力不足的情況,不能滿足伺服器處理能力過剩而受限於例如網卡流量資源等的情況,而通過計數器和時間控制固定時間區間內通過的請求量進行限流保護時,由於時間區間是固定的,不能滿足用戶請求隨機分布的情況。
技術實現要素:
有鑑於此,本發明提供一種能滿足用戶請求隨機分布的情況及伺服器處理能力過剩的情況的基於延時隊列的限流保護方法。
本發明實施例提供一種基於延時隊列的限流保護方法,所述基於延時隊列的限流保護方法包括收集並分析伺服器的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間;接收用戶終端發送的請求;判斷所述延時隊列中的請求數量是否超過閥值;若所述延時隊列中的請求數量未超過閥值,則將所述請求加入所述延時隊列,並在所述請求滿足所述佔位時間時,讓所述請求離開所述延時隊列;以及若所述延時隊列的請求數量超過閥值,則發送繁忙信息至所述用戶終端。
本發明實施例還提供一種伺服器,所述伺服器包括獲取模塊、流量控制模塊。所述獲取模塊用於收集並分析所述伺服器的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間;所述流量控制模塊用於接收用戶終端發送的請求,並在所述延時隊列中的請求數量未超過閥值時,將所述請求加入所述延時隊列,且在所述延時隊列中的所述請求滿足所述佔位時間時,讓所述請求離開所述延時隊列。
本發明實施例還提供一種基於延時隊列的限流保護系統,所述基於延時隊列的限流保護系統包括用戶終端及伺服器;所述用戶終端用於發送請求至所述伺服器;所述伺服器用於收集並分析所述伺服器的性能參數,從而獲取延時隊列中的請求數量的閥值及所述請求的佔位時間,並在所述延時隊列中的請求數量未超過閥值時,將所述請求加入所述延時隊列,且在所述延時隊列中的所述請求滿足所述佔位時間時,讓所述請求離開所述延時隊列。
本發明的伺服器、基於延時隊列的限流保護系統及方法能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且在延時隊列中的所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
為讓本發明的上述和其他目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
附圖說明
圖1為本發明第一實施例提供的伺服器的結構示意圖。
圖2示出一種延時隊列的結構示意圖。
圖3示出一種用戶終端的結構框圖。
圖4為本發明第二實施例提供的基於延時隊列的限流保護系統的結構示意圖。
圖5為本發明第三實施例提供的基於延時隊列的限流保護方法的流程 示意圖。
圖6為如圖5所示的基於延時隊列的限流保護方法的應用環境示意圖。
圖7為本發明第四實施例提供的基於延時隊列的限流保護方法的流程示意圖。
圖8為本發明第五實施例提供的基於延時隊列的限流保護方法的流程示意圖。
具體實施方式
為更進一步闡述本發明為實現預定發明目的所採取的技術手段及功效,以下結合附圖及較佳實施例,對依據本發明的具體實施方式、結構、特徵及其功效,詳細說明如後。
第一實施例
圖1為本發明第一實施例提供的伺服器的結構示意圖。如圖1所示,伺服器10包括獲取模塊100及流量控制模塊101。
其中,獲取模塊100用於收集並分析伺服器10的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間。
具體地,伺服器10的性能參數可以但不限於包括網卡流量、輸入輸出接口的使用情況所分別對應的性能參數。當然本領域的技術人員可以理解的是,伺服器10的性能參數還可以但不限於還包括中央處理器負載情況等等對應的性能參數。
其中,流量控制模塊101用於接收用戶終端發送的請求,並在延時隊列中的請求數量未超過閥值時,將請求加入延時隊列,且在延時隊列中的請求滿足佔位時間時,讓請求離開延時隊列。
具體地,用戶終端可以但不限於為手機、平板電腦等等終端設備。用戶終端可與各種網絡如網際網路、企業內部網、無線網絡進行通訊例如通過無線網絡發送請求至伺服器。上述的無線網絡可包括蜂窩式電話網、無線區域網或者城域網。上述的無線網絡可以使用各種通信標準、協議及技術。
其中,延時隊列為可以但不限於為以時間戳為優先級的延時隊列,當然本領域的技術人員可以理解的是,延時隊列也可以以其它例如請求的類型等為優先級的隊列。
圖2示出一種延時隊列的結構示意圖。其中,延時隊列為以時間戳為優先級的延時隊列,也就是說延時隊列頭部為時間戳(入隊這一刻的時間)最小的請求,延時隊列尾部為時間戳最大的請求。如圖2所示,延時隊列共包括9個請求,延時隊列中的時間表示對應請求出隊的剩餘時間,例如,假若延時隊列中的請求數量的閥值為9,請求的佔位時間為1秒(s),那麼,只有在100毫秒(ms)以後,才有可能有下一個請求加入延時隊列即當延時隊列被塞滿(請求數量達到閥值),只有在有請求離開延時隊列時,下一個請求才能加入延時隊列。此外,每個請求在延時隊列都必須滿足1s才能離開延時隊列。
值得一提的是,每個請求在延時隊列都必須滿足佔位時間才能離開延時隊列,但伺服器實際響應請求的時間可能但不限於先於請求離開延時隊列的時間。
本發明實施例提供的伺服器能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且在延時隊列中的所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
圖3示出一種用戶終端的結構框圖。如圖3所示,用戶終端包括存儲器202、存儲控制器204,一個或多個(圖中僅示出一個)處理器206、外設接口208、射頻模塊210、定位模塊212、攝像模塊214、音頻模塊216、觸控屏幕218以及按鍵模塊220。這些組件通過一條或多條通訊總線/信號線相互通訊。
可以理解,圖3所示的結構僅為示意,用戶終端還可包括比圖3中所示更多或者更少的組件,或者具有與圖3所示相比不同的配置。圖3中所 示的各組件可以採用硬體、軟體或其組合實現。
存儲器202可用於存儲軟體程序以及模塊。處理器202通過運行存儲在存儲器204內的軟體程序以及模塊,從而執行各種功能應用以及數據處理。
存儲器202可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、快閃記憶體、或者其他非易失性固態存儲器。在一些實例中,存儲器202可進一步包括相對於處理器206遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至用戶終端。上述網絡的實例包括但不限於網際網路、企業內部網、區域網、移動通信網及其組合。處理器206以及其他可能的組件對存儲器202的訪問可在存儲控制器204的控制下進行。
外設接口208將各種輸入/輸出裝置耦合至處理器206以及存儲器202。處理器206運行存儲器202內的各種軟體、指令以執行用戶終端的各種功能以及進行數據處理。
在一些實施例中,外設接口208、處理器206以及存儲控制器204可以在單個晶片中實現。在其它實例中,外設接口208、處理器206以及存儲控制器204可以分別由獨立的晶片實現。
射頻模塊210用於接收以及發送電磁波,實現電磁波與電信號的相互轉換,從而與通訊網絡或者其他設備進行通訊。射頻模塊210可包括各種現有的用於執行這些功能的電路元件,例如,天線、射頻收發器、數位訊號處理器、加密/解密晶片、用戶身份模塊(SIM)卡、存儲器等等。射頻模塊210可與各種網絡如網際網路、企業內部網、無線網絡進行通訊或者通過無線網絡與其他設備進行通訊。上述的無線網絡可包括蜂窩式電話網、無線區域網或者城域網。上述的無線網絡可以使用各種通信標準、協議及技術,包括但並不限於全球移動通信系統(Global System for Mobile Communication,GSM)、增強型移動通信技術(Enhanced Data GSM Environment,EDGE),寬帶碼分多址技術(wideband code division multiple access,W-CDMA),碼分多址技術(Code division access,CDMA)、時分多址技術(time division multiple access,TDMA),藍牙,無線保真技術(Wireless,Fidelity,WiFi)(如美國電氣和電子工程師協會標準IEEE 802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE 802.11n)、網絡電話(Voice over internet protocal,VoIP)、全球微波互聯接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用於郵件、即時通訊及短消息的協議,以及任何其他合適的通訊協議,甚至可包括那些當前仍未被開發出來的協議。
定位模塊212用於獲取用戶終端的當前位置。定位模塊212的實例包括但不限於全球衛星定位系統(GPS)、基於無線區域網或者移動通信網的定位技術。
攝像模塊214用於拍攝照片或者視頻。拍攝的照片或者視頻可以存儲至存儲器202內,並可通過射頻模塊210發送。
音頻模塊216向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。音頻模塊216從外設接口208處接收聲音數據,將聲音數據轉換為電信息,將電信息傳輸至揚聲器。揚聲器將電信息轉換為人耳能聽到的聲波。音頻電路還從麥克風處接收電信息,將電信號轉換為聲音數據,並將聲音數據傳輸至外設接口208中以進行進一步的處理。音頻數據可以從存儲器202處或者通過射頻模塊210獲取。此外,音頻數據也可以存儲至存儲器202中或者通過射頻模塊210進行發送。在一些實例中,音頻模塊216還可包括一個耳機播孔,用於向耳機或者其他設備提供音頻接口。
觸控屏幕218在用戶終端與用戶之間同時提供一個輸出及輸入界面。觸控屏幕218用於向用戶顯示視頻輸出,這些視頻輸出的內容可包括文字、圖形、視頻、及其任意組合。觸控屏幕218還用於接收用戶的輸入,例如用戶的點擊、滑動等手勢操作,以便用戶界面對象對這些用戶的輸入做出響應。檢測用戶輸入的技術可以是基於電阻式、電容式或者其他任意可能 的觸控檢測技術。觸控屏幕218顯示單元的具體實例包括但並不限於液晶顯示器或發光聚合物顯示器。
按鍵模塊220同樣提供用戶向用戶終端進行輸入的接口,用戶可以通過按下不同的按鍵以使用戶終端執行不同的功能。
第二實施例
圖4為本發明第二實施例提供的基於延時隊列的限流保護系統的結構示意圖。如圖4所示,基於延時隊列的限流保護系統包括伺服器30及用戶終端40。
其中,用戶終端40用於發送請求至所述伺服器30。
具體地,用戶終端40可以但不限於為手機、平板電腦等等終端設備。用戶終端40可與各種網絡如網際網路、企業內部網、無線網絡進行通訊例如通過無線網絡發送請求至伺服器30。無線網絡可以使用各種通信標準、協議及技術。
伺服器30用於收集並分析伺服器30的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間,並在延時隊列中的請求數量未超過閥值時,將接收的用戶終端40發送的請求加入延時隊列,且在延時隊列中的請求滿足佔位時間時,讓請求離開延時隊列。
具體地,伺服器30的性能參數可以但不限於包括網卡流量、輸入輸出接口的使用情況所分別對應的性能參數。當然本領域的技術人員可以理解的是,伺服器30的性能參數還可以但不限於還包括中央處理器負載情況等等對應的性能參數。
其中,延時隊列為可以但不限於為以時間戳為優先級的延時隊列,當然本領域的技術人員可以理解的是,延時隊列也可以以其它例如請求的類型等為優先級的隊列。
值得一提的是,每個請求在延時隊列都必須滿足佔位時間才能離開延時隊列,但伺服器實際響應請求的時間可能但不限於先於請求離開延時隊 列的時間。
本發明實施例提供的基於延時隊列的限流保護系統能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且在延時隊列中的所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
第三實施例
圖5為本發明第三實施例提供的基於延時隊列的限流保護方法的流程示意圖。圖6為如圖5所示的基於延時隊列的限流保護方法的應用環境示意圖。
請同時參考圖5及圖6,基於延時隊列的限流保護方法包括如下步驟:
步驟S51:收集並分析伺服器50的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間;
具體地,伺服器50的性能參數可以但不限於包括網卡流量、輸入輸出接口的使用情況所分別對應的性能參數。當然本領域的技術人員可以理解的是,伺服器50的性能參數還可以但不限於還包括中央處理器負載情況等等對應的性能參數。
其中,延時隊列為可以但不限於為以時間戳為優先級的延時隊列,當然本領域的技術人員可以理解的是,延時隊列也可以以其它例如請求的類型等為優先級的隊列。
步驟S52:接收用戶終端60發送的請求;
具體地,用戶終端60可以但不限於為手機、平板電腦等等終端設備。用戶終端60可與各種網絡如網際網路、企業內部網、無線網絡進行通訊例如通過無線網絡發送請求至伺服器50。無線網絡可以使用各種通信標準、協議及技術。
步驟S53:判斷延時隊列中的請求數量是否超過閥值;
若延時隊列中的請求數量未超過閥值,則進入步驟S54:將請求加入延 時隊列,並在請求滿足佔位時間時,讓請求離開延時隊列;
值得一提的是,每個請求在延時隊列都必須滿足佔位時間才能離開延時隊列,但伺服器實際響應請求的時間可能但不限於先於請求離開延時隊列的時間。
若延時隊列的請求數量超過閥值,則進入步驟S55:發送繁忙信息至用戶終端60。
本發明實施例提供的基於延時隊列的限流保護方法能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且在延時隊列中的所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
第四實施例
圖7為本發明第四實施例提供的基於延時隊列的限流保護方法的流程示意圖。基於延時隊列的限流保護方法包括如下步驟:
步驟S71:收集並分析伺服器的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間;
具體地,伺服器的性能參數可以但不限於包括網卡流量、輸入輸出接口的使用情況所分別對應的性能參數。當然本領域的技術人員可以理解的是,伺服器的性能參數還可以但不限於還包括中央處理器負載情況等等對應的性能參數。
具體地,延時隊列為可以但不限於為以時間戳為優先級的延時隊列,當然本領域的技術人員可以理解的是,延時隊列也可以以其它例如請求的類型等為優先級的隊列。
步驟S72:接收用戶終端發送的請求;
具體地,用戶終端可以但不限於為手機、平板電腦等等終端設備。用戶終端可以但不限於通過各種網絡發送請求至伺服器。
步驟S73:判斷延時隊列中的請求數量是否超過閥值;
若延時隊列中的請求數量未超過閥值,則進入步驟S74:將請求加入延時隊列;
步驟S75:判斷延時隊列中的請求是否滿足佔位時間;
若延時隊列中的請求滿足佔位時間,則進入步驟S76:讓請求離開延時隊列;
若延時隊列中的請求未滿足佔位時間,則返回步驟S75。
具體地,實時判斷請求是否滿足佔位時間,若請求在延時隊列內待的時間滿足佔位時間則讓請求離開延時隊列,若請求在延時隊列內待的時間不滿足佔位時間,則重複判斷直至其滿足佔位時間。
若延時隊列的請求數量超過閥值,則進入步驟S77:發送繁忙信息至用戶終端。
值得一提的是,每個請求在延時隊列都必須滿足佔位時間才能離開延時隊列,但伺服器實際響應請求的時間可能但不限於先於請求離開延時隊列的時間。
本發明實施例提供的基於延時隊列的限流保護方法能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且實時判斷延時隊列中的所述請求是否滿足所述佔位時間,並在所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
第五實施例
圖8為本發明第五實施例提供的基於延時隊列的限流保護方法的流程示意圖。
基於延時隊列的限流保護方法包括如下步驟:
步驟S81:收集並分析伺服器的性能參數,從而獲取延時隊列中的請求數量的閥值及請求的佔位時間;
具體地,伺服器的性能參數可以但不限於包括網卡流量、輸入輸出接 口的使用情況所分別對應的性能參數。當然本領域的技術人員可以理解的是,伺服器的性能參數還可以但不限於還包括中央處理器負載情況等等對應的性能參數。
具體地,延時隊列為可以但不限於為以時間戳為優先級的延時隊列,當然本領域的技術人員可以理解的是,延時隊列也可以以其它例如請求的類型等為優先級的隊列。
步驟S82:接收用戶終端發送的請求;
具體地,用戶終端可以但不限於為手機、平板電腦等等終端設備。用戶終端可以但不限於通過各種網絡發送請求至伺服器。
步驟S83:判斷延時隊列中的請求數量是否超過閥值;
若延時隊列中的請求數量未超過閥值,則進入步驟S84:將請求加入延時隊列;
步驟S85:獲取請求加入延時隊列的時間戳;
具體地,獲取請求加入延時隊列的時間戳也就是獲取請求加入延時隊列這一刻的時間。
步驟S86:等待佔位時間後,讓請求離開延時隊列;
具體地,例如佔位時間為1s,則在請求加入延時隊列後1S,讓請求離開延時隊列。
值得一提的是,每個請求在延時隊列都必須滿足佔位時間才能離開延時隊列,但伺服器實際響應請求的時間可能但不限於先於請求離開延時隊列的時間。
延時隊列的請求數量超過閥值,則進入步驟S87:若發送繁忙信息至用戶終端。
本發明實施例提供的基於延時隊列的限流保護方法能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且等待所述佔位時間後,讓所述請求離開所述延時隊列相較與實時判斷所 述延時隊列中的所述請求是否滿足所述佔位時間,在能滿足伺服器處理能力過剩的情況下,減少系統運算次數。
本發明的伺服器、基於延時隊列的限流保護系統及方法能實時根據延時隊列中的請求的數量響應用戶終端的請求,能滿足用戶請求隨機分布的情況,且在延時隊列中的所述請求滿足所述佔位時間時才將延時隊列中的請求數量相應地減少,能滿足伺服器處理能力過剩的情況。
需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對於裝置類實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括要素的過程、方法、物品或者裝置中還存在另外的相同要素。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
以上,僅是本發明的較佳實施例而已,並非對本發明作任何形式上的限制,雖然本發明已以較佳實施例揭露如上,然而並非用以限定本發明, 任何熟悉本專業的技術人員,在不脫離本發明技術方案範圍內,當可利用上述揭示的技術內容做出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發明技術方案內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬於本發明技術方案的範圍內。