MQ實戰(zhàn)-削峰填谷

對于突然到來的大量請求抛丽,您可以配置流控規(guī)則,以穩(wěn)定的速度逐步處理這些請求晌缘,起到“削峰填谷”的效果,從而避免流量突刺造成系統(tǒng)負載過高痢站。

場景

請求的到來磷箕,往往是沒有規(guī)律的。

例如阵难,某應用的處理能力是每秒 10 個請求岳枷。在某一秒,突然到來了 30 個請求呜叫,而接下來兩秒空繁,都沒有請求到達。在這種情況下朱庆,如果直接拒絕 20 個請求盛泡,應用在接下來的兩秒就會空閑。所以娱颊,需要把請求突刺均攤到一段時間內(nèi)傲诵,讓系統(tǒng)負載保持在請求處理水位之內(nèi),同時盡可能地處理更多請求箱硕,從而起到“削峰填谷”的效果拴竹。

image.png

上圖中,紅色的部分代表超出消息處理能力的部分剧罩。觀察得出栓拜,消息突刺往往都是瞬時的、不規(guī)律的惠昔,其后一段時間系統(tǒng)往往都會有空閑資源幕与。把紅色的那部分消息平攤到后面空閑時去處理,這樣既可以保證系統(tǒng)負載處在一個穩(wěn)定的水位舰罚,又可以盡可能地處理更多消息纽门。通過配置流控規(guī)則,可以達到消息勻速處理的效果营罢。

分析問答

1. 問:站點與服務赏陵,服務與服務上下游之間饼齿,一般如何通訊?

答:有兩種常見的方式
一種是“直接調(diào)用”蝙搔,通過RPC框架缕溉,上游直接調(diào)用下游:


還有一種,在某些業(yè)務場景之下吃型,可以采用“MQ推送”证鸥,上游將消息發(fā)給MQ,MQ將消息推送給下游勤晚。


2. 問:以上兩種為什么為有流量沖擊枉层?

答:不管采用“直接調(diào)用” 還是 “MQ推送”,都有一個很大的缺點赐写,下游消息接收方無法控制到達自己的流量鸟蜡,如果調(diào)用方不斷的調(diào)用且不限速,很有可能把下游服務壓垮挺邀。

  • 舉個例子: 秒殺業(yè)務
    上游發(fā)起高并發(fā)的下單請求揉忘。
    下游完成秒殺業(yè)務邏輯(庫存檢查 - 庫存凍結(jié) - 余額檢查 - 余額凍結(jié) - 訂單完成 - 余額扣減 - 庫存扣減 - 生成流水 - 余額解凍 - 庫存解凍)。
    上游下單業(yè)務簡單端铛,每秒發(fā)起10000+個請求泣矛,下游秒殺業(yè)務復雜,每秒只能處理2000+個請求禾蚕,很有可能上游不限速的下單您朽,導致下游系統(tǒng)被壓垮,引起雪崩夕膀。

3. 問:MQ怎么改能緩沖流量虚倒?
答:由MQ-server 推(push)模式,改為 MQ-client(pull)為拉模式

MQ-client根據(jù)自己的處理能力产舞,每隔一定時間魂奥,或者每次拉取若干條消息,實施流控易猫,達到保護自身的效果耻煤。并且這是MQ提供的通用功能,無需上下游修改代碼准颓。

4. 問:如果上游發(fā)送流量過大哈蝇,MQ提供拉模式確實可以起到下游自我保護的作用,會不會導致消息在MQ中堆積攘已?
答:下游MQ-client拉取消息炮赦,消息接收方能夠批量獲取消息,需要下游消息接收方進行優(yōu)化样勃,方能夠提升整體吞吐量吠勘,例如:批量寫性芬。

結(jié)論

  • MQ-client提供拉模式,定時或者批量拉取剧防,可以起到削平流量植锉,下游自我保護的作用(MQ需要做的)
  • 要想提升整體吞吐量,需要下游優(yōu)化峭拘,例如批量處理等方式(消息接收方需要做的)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俊庇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸡挠,更是在濱河造成了極大的恐慌辉饱,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拣展,死亡現(xiàn)場離奇詭異鞋囊,居然都是意外死亡,警方通過查閱死者的電腦和手機瞎惫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來译株,“玉大人瓜喇,你說我怎么就攤上這事∏该樱” “怎么了乘寒?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匪补。 經(jīng)常有香客問我伞辛,道長,這世上最難降的妖魔是什么夯缺? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任蚤氏,我火速辦了婚禮,結(jié)果婚禮上踊兜,老公的妹妹穿的比我還像新娘竿滨。我一直安慰自己,他們只是感情好捏境,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布于游。 她就那樣靜靜地躺著,像睡著了一般垫言。 火紅的嫁衣襯著肌膚如雪贰剥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天筷频,我揣著相機與錄音蚌成,去河邊找鬼前痘。 笑死,一個胖子當著我的面吹牛笑陈,可吹牛的內(nèi)容都是我干的际度。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼涵妥,長吁一口氣:“原來是場噩夢啊……” “哼乖菱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓬网,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤窒所,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帆锋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吵取,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年锯厢,在試婚紗的時候發(fā)現(xiàn)自己被綠了皮官。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡实辑,死狀恐怖捺氢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剪撬,我是刑警寧澤摄乒,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站残黑,受9級特大地震影響馍佑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梨水,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一拭荤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疫诽,春花似錦穷劈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至逼龟,卻和暖如春评凝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腺律。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工奕短, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宜肉,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓翎碑,卻偏偏與公主長得像谬返,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子日杈,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容