服務限流限流算法、限流策略以及該在哪里限流

服務限流封面.png

1. 什么是服務限流野哭?

隨著現(xiàn)在微服務在塔、分布式系統(tǒng)的發(fā)展,各個服務之間的相互調用越來越復雜拨黔。

為了保證自身服務的穩(wěn)定性與高可用糖权,當面對超過自身服務能力的請求調用時碍拆,要做一定的限流措施甘畅。

如同五一搂橙、國慶期間的旅游出行揪利、景區(qū)爆滿态兴,游客限流。我們的服務面對諸如秒殺疟位、大促瞻润、618、雙十一以及可能的惡意攻擊甜刻、爬蟲等高并發(fā)绍撞、大流量的場景也需要做服務限流。

概念:對超出服務處理能力之外的請求進行攔截得院,對訪問服務的流量進行限制傻铣。

2. 常用限流算法

2.1 計數器法(固定窗口)

概念 :在單位時間內,統(tǒng)計進入的請求數量祥绞,統(tǒng)計值達到限流閾值時非洲,開始限流(如拒絕和排隊)。這個單位時間結束后蜕径,計算器清零两踏,重新開始計數。

問題:在固定時間窗口切換處兜喻,最高可能會接收到2倍閾值的流量梦染。

假如設置的時間窗口為5秒,限流閾值為10.

第5秒時進來10個流量朴皆,此時窗口內流量未超閾值帕识。第6秒切換到下一個窗口,此時進來流量10遂铡,當前窗口流量仍未超閾值肮疗。但是 第5秒和第6秒的切換臨界處,短時間內進來了限流閾值的雙倍流量忧便,此時服務可能會因為請求流量過多而發(fā)生異常族吻。

固定窗口

2.2 滑動窗口算法

概念: 滑動窗口對固定窗口進行改良帽借,將其細化,將一個時間窗口劃分為若干個時間窗格超歌,每個窗格代表固定的時間段(如1分鐘)砍艾、擁有獨立的計數器,每過固定時間(如1分鐘)巍举,將滑動窗口向前移動一格脆荷。滑動窗口中的窗格劃分越細懊悯,限流統(tǒng)計越精確蜓谋。

假如設置的時間窗口為5秒,限流閾值為10.

第5秒時進來10個流量炭分,此時窗口內流量未超閾值桃焕。第6秒時進來流量10,與此同時,滑動窗口右移一格捧毛,此時滑動窗口內(第2~6秒)流量為20观堂,大于限流閾值,開始限流呀忧。

滑動窗口

2.3 漏斗算法

概念:請求像水一樣注入漏斗师痕,然后以固定的速率流出。漏斗未滿之前而账,請求可以一直進入胰坟;漏斗滿,則請求拒絕泞辐。

漏斗算法可以平滑流量笔横,但是無法解決流量突增的問題。

漏斗算法

2.4 令牌桶算法

概念:以恒定速率(令牌產生速率)向令牌桶中放入令牌铛碑,令牌桶滿(令牌桶大小)則無法放入狠裹。請求到達后先獲取令牌,拿到令牌后請求被處理并刪除獲得的令牌汽烦。令牌不足時涛菠,請求無法獲得令牌,請求被拒絕撇吞。

令牌桶算法可以平滑限流俗冻,同時可以容忍突發(fā)流量。

令牌桶算法

3. 限流策略

3.1 服務拒絕

當請求流量達到限流閾值時牍颈,對多余的請求直接拒絕迄薄。
可通過設計實現(xiàn)對指定域名、IP煮岁、客戶端讥蔽、應用涣易、用戶等不同來源的請求進行拒絕。

3.2 延時處理

通過將多余的請求加入緩存隊列或延時隊列冶伞,來應對短期的流量突增新症,高峰期過后開始將堆積的請求流量逐漸處理。

3.3 請求分級(優(yōu)先級)

對不同來源的請求設置優(yōu)先級响禽,先處理優(yōu)先級更高的請求徒爹。如VIP客戶、重要的業(yè)務應用(如交易服務優(yōu)先級高于日志服務)

3.4 動態(tài)限流

可以監(jiān)控系統(tǒng)相關指標芋类、評估系統(tǒng)壓力隆嗅,通過注冊中心、配置中心等動態(tài)調整限流閾值侯繁。

3.5 監(jiān)控預警&動態(tài)擴容

如果有優(yōu)秀的服務監(jiān)控系統(tǒng)與自動部署胖喳、發(fā)布系統(tǒng),可以通過監(jiān)控系統(tǒng)自動監(jiān)測系統(tǒng)運行情況巫击,對短期內服務壓力暴增禀晓、流量大幅寫入的情況進行郵件、短信等方式進行預警坝锰。

在滿足特定條件下,可自動部署重付、發(fā)布相關服務顷级,起到動態(tài)擴容的效果。

4. 限流位置

4.1 接入層限流

可以通過Nginx确垫、API路由網關等對域名或IP進行限流弓颈,同時可以攔截非法請求

4.2 應用限流

每個服務可以有自己的單機或集群限流措施,也可以調用第三方的限流服務

4.3 基礎服務限流

數據庫:限制數據庫連接删掀、限制讀寫速率

消息隊列:限制消費速率(消費量翔冀、消費線程)


如果這篇文章對你有用的話,點個再走唄披泪!
如有問題纤子,歡迎留言評論!
歡迎轉載款票,煩請注明出處控硼!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艾少,隨后出現(xiàn)的幾起案子卡乾,更是在濱河造成了極大的恐慌,老刑警劉巖缚够,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幔妨,死亡現(xiàn)場離奇詭異鹦赎,居然都是意外死亡,警方通過查閱死者的電腦和手機误堡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門钙姊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人埂伦,你說我怎么就攤上這事煞额。” “怎么了沾谜?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵膊毁,是天一觀的道長。 經常有香客問我基跑,道長婚温,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任媳否,我火速辦了婚禮栅螟,結果婚禮上,老公的妹妹穿的比我還像新娘篱竭。我一直安慰自己力图,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布掺逼。 她就那樣靜靜地躺著吃媒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吕喘。 梳的紋絲不亂的頭發(fā)上赘那,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音氯质,去河邊找鬼募舟。 笑死,一個胖子當著我的面吹牛闻察,可吹牛的內容都是我干的拱礁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜓陌,長吁一口氣:“原來是場噩夢啊……” “哼觅彰!你這毒婦竟也來了?” 一聲冷哼從身側響起钮热,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤填抬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后隧期,有當地人在樹林里發(fā)現(xiàn)了一具尸體飒责,經...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡赘娄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宏蛉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遣臼。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拾并,靈堂內的尸體忽然破棺而出揍堰,到底是詐尸還是另有隱情,我是刑警寧澤嗅义,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布屏歹,位于F島的核電站,受9級特大地震影響之碗,放射性物質發(fā)生泄漏蝙眶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一褪那、第九天 我趴在偏房一處隱蔽的房頂上張望幽纷。 院中可真熱鬧,春花似錦博敬、人聲如沸友浸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尾菇。三九已至,卻和暖如春囚枪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背劳淆。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工链沼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沛鸵。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓括勺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曲掰。 傳聞我的和親對象是個殘疾皇子疾捍,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容