日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

為什么要做限流呢?舉一個生活中的例子,大家早上上班都要擠地鐵吧,地鐵站在早高峰的時候經常要限制客流,為什么呢?有人會覺得這是人為添堵。真是這樣嗎?如果不執行客流控制,大家想想會是什么場景呢?站臺到處都擠滿了乘客,就算你使出洪荒之力也不一定能順利上車,且非常容易引發肢體碰撞,造成沖突。有了客流控制之后,地鐵站才能變得秩序井然,大家才能安全上地鐵。

一個系統的處理能力是有上限的,當服務請求量超過處理能力,通常會引起排隊,造成響應時間迅速提升。如果對服務占用的資源量沒有約束,還可能因為系統資源占用過多而宕機。因此,為了保證系統在遭遇突發流量時,能夠正常運行,需要為你的服務加上限流。

常見的限流算法有:漏桶、令牌桶、滑動窗口計數。

分類

按照計數范圍,可以分為:單機限流、全局限流。單機限流,一般是為了應對突發流量,而全局限流,通常是為了給有限資源進行流量配額。

按照計數周期,可以分為:QPS、并發(連接數)。

按照閾值設定方式的不同,可以分為:固定閾值、動態閾值。

漏桶算法

下面這張圖,是漏桶的示意圖。漏桶算法思路很簡單,水(請求)先進入到漏桶里,漏桶以一定的速度出水,當水流入速度過大時,會直接溢出,可以看出漏桶算法能強行限制數據的傳輸速率。漏桶算法(Leaky Bucket)是網絡世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)時經常使用的一種算法,它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發流量。

常用的限流算法有哪些?

漏桶算法原理

漏桶算法可以使用 redis 隊列來實現,生產者發送消息前先檢查隊列長度是否超過閾值,超過閾值則丟棄消息,否則發送消息到 Redis 隊列中;消費者以固定速率從 Redis 隊列中取消息。Redis 隊列在這里起到了一個緩沖池的作用,起到削峰填谷、流量整形的作用。

令牌桶算法

對于很多應用場景來說,除了要求能夠限制數據的平均傳輸速率外,還要求允許某種程度的突發傳輸。這時候漏桶算法可能就不合適了,令牌桶算法更為適合。令牌桶算法的原理是系統會以一個恒定的速度往桶里放入令牌,而如果請求需要被處理,則需要先從桶里獲取一個令牌,當桶里沒有令牌可取時,則拒絕服務。桶里能夠存放令牌的最高數量,就是允許的突發傳輸量。

常用的限流算法有哪些?

令牌桶算法原理

Guava 中的限流工具 RateLimiter,其原理就是令牌桶算法。

滑動窗口計數法

計數法是限流算法里最容易理解的一種,該方法統計最近一段時間的請求量,如果超過一定的閾值,就開始限流。在 TCP 網絡協議中,也用到了滑動窗口來限制數據傳輸速率。

常用的限流算法有哪些?

滑動窗口計數原理

滑動窗口計數有兩個關鍵的因素:窗口時長、滾動時間間隔。滾動時間間隔一般等于上圖中的一個桶 bucket,窗口時長除以滾動時間間隔,就是一個窗口所包含的 bucket 數目。

滑動窗口計數算法的實現,可以查看這篇文章:降級熔斷框架 Hystrix 源碼解析:滑動窗口統計。

動態限流

一般情況下的限流,都需要我們手動設定限流閾值,不僅繁瑣,而且容易因系統的發布升級而過時。為此,我們考慮根據系統負載來動態決定是否限流,動態計算限流閾值。可以參考的系統負載參數有:Load、CPU、接口響應時間等。

常用的限流算法有哪些?

動態限流

作者:albon

鏈接:https://www.jianshu.com/p/7a8cae9d3ea5

來源:簡書

分享到:
標簽:算法
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定