流量預警和限流方案中,比較常用的有兩種。第一種滑窗模式,通過統(tǒng)計多個單元時間的訪問次數(shù)來進行控制,當單位時間的訪問次數(shù)達到的某個峰值時進行限流。第二種為響應模式,通過控制當前活躍請求數(shù),來進行流量控制。下面來簡單分析下兩種的優(yōu)缺點。
站在用戶的角度思考問題,與客戶深入溝通,找到靜樂網(wǎng)站設計與靜樂網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋靜樂地區(qū)。1、滑窗模式
模式分析:
在每次有訪問進來時,我們判斷前N個單位時間里總訪問量是否超過了設置的閾值,若超過則不允許執(zhí)行。
這種模式的實現(xiàn)的方式更加契合流控的本質意義。理解較為簡單。但由于訪問量的預先不可預見性,會發(fā)生單位時間的前半段有大量的請求涌入,而后半段則拒絕所有請求的情況發(fā)生。(一般,需要會將單位時間切的足夠的細來解決這個問題)其次,我們很難確定這個閾值設置在多少比較合適,只能通過經(jīng)驗或者模擬(如壓測)來進行估計,不過即使是壓測也很難估計的準確,線上每臺機器的硬件參數(shù)的不同,或者同一臺機子在不同的時間點其可以接受的閾值也不盡相同(系統(tǒng)中),每個時間點導致能夠承受的大閾值也不盡相同,我們無法考慮的周全。
所以滑窗模式往往用來對某一資源的保護上(或者說是承諾比較合適:我對某一接口的提供者承諾過,最高調(diào)用量不超過XX),如對db的保護,對某一服務的調(diào)用的控制上。因為對于我們應用來說,db或某一接口就是一共單一的整體。
代碼實現(xiàn)思路:
每一個窗(單位時間)就是一個獨立的計數(shù)器(原子計數(shù)器),用以數(shù)組保存。將當前時間以某種方式(比如取模)映射到數(shù)組的一項中。每次訪問先對當前窗內(nèi)計數(shù)器+1,再計算前N個單元格的訪問量綜合,超過閾值則限流。
這里有個問題,時間永遠是遞增的,單純的取模,會導致數(shù)組過長,使用內(nèi)存過多,我們可以用環(huán)形隊列來解決這個問題。
2、響應模式
模式分析:
每次操作執(zhí)行時,我們通過判斷當前正在執(zhí)行的訪問數(shù)是否超過某個閾值在決定是否限流。
該模式看著思路比較的另類,但卻有其獨到之處。實際上我們限流的根本是為了保護資源,防止系統(tǒng)接受的請求過多,應接不暇,拖慢系統(tǒng)中其他接口的服務,造成雪崩。也就是說我們真正需要關心的是那些運行中的請求,而那些已經(jīng)完成的請求已是過去時,不再是需要關心的了。
我們來看看其閾值的計算方式,對于一個請求來說,響應時間rt/qps是一個比較容易獲取的參數(shù),那么我們這樣計算:qps/1000*rt。
此外,一個應用往往是個復雜的系統(tǒng),提供的服務或者暴露的請求、資源不止一個。內(nèi)部GC、定時任務的執(zhí)行、其他服務訪問的驟增,外部依賴方、db的抖動,抑或是代碼中不經(jīng)意間的一個bug。都可能導致相應時間的變化,導致系統(tǒng)同時可以執(zhí)行請求的變化。而這種模式,則能恰如其分的自動做出調(diào)整,當系統(tǒng)不適時,rt增加時,會自動的對qps做出適應。
代碼實現(xiàn)思路:
當訪問開始時,我們對當前計數(shù)器(原子計數(shù)器)+1,當完成時,-1。該計數(shù)器即為當前正在執(zhí)行的請求數(shù)。只需判斷這個計數(shù)器是否超過閾值即可。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站標題:關于兩種限流模式-創(chuàng)新互聯(lián)
當前鏈接:http://jinyejixie.com/article48/ghohp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、小程序開發(fā)、App開發(fā)、自適應網(wǎng)站、ChatGPT、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容