秒殺流量控制的執行方案

2021-09-14 03:15:22 字數 1245 閱讀 9136

nginx限制連線數(ngx_http_limit_conn_module)模組
ngx_http_limit_conn_module 對於一些伺服器流量異常、負載過大,甚至是大流量的惡意攻擊訪問等,進行併發數的限制;該模組可以根據定義的鍵來限制每個鍵值的連線數,只有那些正在被處理的請求(這些請求的頭資訊已被完全讀入)所在的連線才會被計數。

該模組使用漏斗演算法(leaky bucket),該演算法有兩種處理方式traffic shaping和traffic policing

在桶滿水之後,常見的兩種處理方式為:

暫時攔截住上方水的向下流動,等待桶中的一部分水漏走後,再放行上方水。

溢位的上方水直接拋棄。

該模組提供了兩個配置引數,limit_conn_zone 和 limit_conn ,其中 limit_conn_zone 只能配置在 http{} 段,而 limit_conn 則可以配置於http{},server{},location{} 區段中。

第三方模組編譯安裝引數:

./configure –prefix=/usr/local/webserver/nginx –add-module=/data0/software/nginx_limit_speed_module-master

make && make install

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server 第一段配置

第乙個引數:$binary_remote_addr 表示通過remote_addr這個標識來做限制,「binary_」的目的是縮寫記憶體佔用量,是限制同一客戶端ip位址

第二個引數:zone=one:10m表示生成乙個大小為10m,名字為one的記憶體區域,用來儲存訪問的頻次資訊

第三個引數:rate=1r/s表示允許相同標識的客戶端的訪問頻次,這裡限制的是每秒1次,還可以有比如30r/m的

第二段配置

第乙個引數:zone=one 設定使用哪個配置區域來做限制,與上面limit_req_zone 裡的name對應

第二個引數:burst=5,重點說明一下這個配置,burst爆發的意思,這個配置的意思是設定乙個大小為5的緩衝區當有大量請求(爆發)過來時,超過了訪問頻次限制的請求可以先放到這個緩衝區內

第三個引數:nodelay,如果設定,超過訪問頻次而且緩衝區也滿了的時候就會直接返回503,如果沒有設定,則所有請求會等待排隊

mysql流量控制 UDP流量控制之分析

關健字 udpudx udttcp 吞吐量流量 代寬擁塞控制 大都知道,udp是不可靠傳輸協議與tcp剛好相反.不過因為udp的特性適合傳輸不需要確認的資料,在應用層如果設計好的傳輸協議一樣可以進行很好的可靠傳輸.比如rudp協議.但是光可靠傳輸還不夠,流量控制是很重要的.我們從簡單的情況說起來說明...

流量控制原則

對於tcp ip一書中tcp部分,我認為關鍵要掌握3點 1.建鏈和拆鏈過程 2.資料互動規則 3.流量控制原則 針對這幾點,我進行了簡要概括,希望有助於初學者理解 流量控制原則 個人對於流量控制的理解,就是平衡一系列的矛盾,使資料 傳輸各方面的綜合成本最低。某個時間點,網路的容量或是某個連線的容量總...

TCP流量控制

一般來說,我們總是希望資料傳輸的更快一些,但如果傳送方把資料傳送的很快,而接收方來不及接收,這就可能造成資料的丟失。流量控制就是讓傳送方的傳送速率不要太快,讓接收方來得及接收。對於成塊資料流,tcp利用滑動視窗機制來實現流量的控制,對於互動資料流,tcp利用捎帶ack和nagle演算法來實現流量的控...