網站限流處理


1.常見兩種方式 漏桶算法和令牌桶算法

   漏桶算法:1.有一個固定容量的漏桶,已固定的速率流出水滴。

      2.可以任意速率流入水滴到漏桶

      3.當漏桶滿了,水溢出(相當於丟棄)

   令牌桶算法:

      1.以固定的速率向桶里放令牌

      2.當桶內的令牌數量達到最大值后,后續放入的令牌被丟棄

      3.當需要發送N個單位大小的數據時,就從桶內去N個令牌

      4.當桶內的令牌數量小於設定的大小時,不能刪除令牌,也就是不能發送數據,這是數據可能被丟棄,也可能被緩沖區緩存下來。

 

 

2.其它方式

  統計計數,主要思想是記錄指定時間內的訪問量,然后定時將計數清零。 

    統計計數方式可以使用jedis的incr和expire的api實現,也可以使用並發Map來實現。

  nginx中配置限流

3.開源實現

  guava RateLimiter ,基於令牌桶算法實現  具體用法參考 http://ifeve.com/guava-ratelimiter/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM