對於成熟的系統,一般會提供一些自我保護能力。其中比較重要的就是流量控制能力,一旦大促期間出現突發的流量高峰,系統頂不住的時候,如果沒有類似的保護系統,整個系統就可能掛掉。
因為在執行的系統有快取,掛掉的系統可能一時間快取跟不上,或者剛啟動起來的時候還沒有快取(恢復系統過程中,已有快取已經過期失效),那麼很可能系統起來就會掛掉,從而要經過很長時間才能恢復使用,這個恢復過程消耗乙個小時、兩個小時可能都是比較好的。
一般,在突發高流量場景下,無論如何都不可能短時間的獲得特別高的服務能力。所以,不論是系統將近崩潰之前,還是系統崩潰之後需要重新啟動的時候,都需要乙個流量控制系統來讓系統能夠服務,或者能夠恢復服務。原則是,「只要系統不死,就有東山再起的希望」。
首先,需要說明對於流量控制可以是在接入層入做,比如硬體的f5、軟體的nginx、apache httpd。
這裡講述,如果使用redis做訪問流量控制,可以怎麼做。這裡所說的流量控制是限制一定時間內的請求次數,可以是限制ip級別,也可以是限制使用者id級別。
借助redis的key過期機制,生成有效期1分鐘的key。當key存在時,計數加1,當key不存在時,建立key,同時設定過期時間。
**如下:
public
static bool canpass
(limitkey string)
if(value > limit)
return
true
;}
mysql流量控制 UDP流量控制之分析
關健字 udpudx udttcp 吞吐量流量 代寬擁塞控制 大都知道,udp是不可靠傳輸協議與tcp剛好相反.不過因為udp的特性適合傳輸不需要確認的資料,在應用層如果設計好的傳輸協議一樣可以進行很好的可靠傳輸.比如rudp協議.但是光可靠傳輸還不夠,流量控制是很重要的.我們從簡單的情況說起來說明...
流量控制原則
對於tcp ip一書中tcp部分,我認為關鍵要掌握3點 1.建鏈和拆鏈過程 2.資料互動規則 3.流量控制原則 針對這幾點,我進行了簡要概括,希望有助於初學者理解 流量控制原則 個人對於流量控制的理解,就是平衡一系列的矛盾,使資料 傳輸各方面的綜合成本最低。某個時間點,網路的容量或是某個連線的容量總...
TCP流量控制
一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法來實現流量的控...