自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

常用的限流方式-滑動窗口(計數器的改進版)

開發(fā) 前端
當用戶在 0:59 秒鐘發(fā)送了 200 個請求就會被第六個格子的計數器記錄 +200,當下一秒的時候時間窗口向右移動了一個,此時計數器已經記錄了該用戶發(fā)送的 200 個請求,所以再發(fā)送的話就會觸發(fā)限流,則拒絕新的請求。

滑動窗口是針對計數器存在的臨界點缺陷,所謂滑動窗口(Sliding window)是一種流量控制技術,這個詞出現在 TCP 協(xié)議中?;瑒哟翱诎压潭〞r間片進行劃分,并且隨著時間的流逝,進行移動,固定數量的可以移動的格子,進行計數并判斷閥值。

上圖中我們用紅色的虛線代表一個時間窗口(一分鐘),每個時間窗口有 6 個格子,每個格子是 10 秒鐘。每過 10 秒鐘時間窗口向右移動一格,可以看紅色箭頭的方向。我們?yōu)槊總€格子都設置一個獨立的計數器 Counter,假如一個請求在 0:45 訪問了那么我們將第五個格子的計數器 +1(也是就是 0:40~0:50),在判斷限流的時候需要把所有格子的計數加起來和設定的頻次進行比較即可。

那么滑動窗口如何解決我們上面遇到的問題呢?來看下面的圖:

當用戶在 0:59 秒鐘發(fā)送了 200 個請求就會被第六個格子的計數器記錄 +200,當下一秒的時候時間窗口向右移動了一個,此時計數器已經記錄了該用戶發(fā)送的 200 個請求,所以再發(fā)送的話就會觸發(fā)限流,則拒絕新的請求。

其實計數器就是滑動窗口啊,只不過只有一個格子而已,所以想讓限流做的更精確只需要劃分更多的格子就可以了,為了更精確我們也不知道到底該設置多少個格子,格子的數量影響著滑動窗口算法的精度,依然有時間片的概念,無法根本解決臨界點問題。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-08-08 08:01:22

微服務架構服務

2009-12-22 13:25:58

WCF性能計數器內存

2022-09-06 08:31:09

線程池工具系統(tǒng)

2012-07-31 09:47:22

微軟Windows 8

2012-07-31 13:31:34

Windows 8鼠標鍵盤

2009-06-11 16:27:18

科學型Java計數器

2009-11-25 15:07:39

PHP添加計數器

2009-12-01 15:01:07

PHP生成訪問計數器

2009-11-06 16:59:26

WCF性能計數器

2023-07-28 08:15:27

PC程序計數器

2022-08-29 19:51:58

CSS計數器

2024-03-04 08:53:50

海量數據計數器存儲

2009-11-30 18:08:30

PHP制作動態(tài)計數器

2009-10-29 11:47:15

ADO.NET計數器b

2010-07-16 14:37:53

SQL Server

2010-02-22 16:34:17

WCF性能計數器

2024-02-07 12:32:00

重構技巧PythonCounter

2009-04-15 10:33:35

SQL Server 性能計數器錯誤

2010-06-12 17:16:46

MySQL數據庫

2023-11-09 08:14:07

時間窗口限流
點贊
收藏

51CTO技術棧公眾號