go 限流方案

當併發數達到咱們服務的閾值的時候,咱們能夠經過限流的方式保證服務可用性。算法

常見的限流方法:併發

  1. 使用帶緩衝的chann,當chan塞滿之後,拒絕服務或者給一個友好的提示或跳轉到一個友好的頁面等。server

  2. 計數器,在10秒內只接受100 請求,當超過100請求後,拒絕服務,當超過10秒後,計數歸零,從新接受請求。blog

  3. 使用httpserver的頻率限制,無需本身實現。請求

  4. 令牌桶算法:以恆定的速度往令牌桶中放入令牌,當有請求過來則從令牌桶中獲取令牌進行後續請求,當獲取令牌失敗後則進行友好處理。方法

  

 

  5. 漏桶算法:請求先進入到漏桶裏,而漏桶以固定的速率處理請求,當請求數量超過漏桶的容量時,將超出的請求進行友好處理,不適合突發請求場景。im

  

  上面兩種令牌的算法區別:漏桶算法,可以強行限制傳輸速率,令牌桶算法:可以限制平均傳輸速率,容許某種突發狀況。d3

相關文章
相關標籤/搜索