mq里每天有幾百萬數(shù)據(jù)堆積驶睦,在高可用場景里怎么有限解決這問題砰左?

近期,好多網(wǎng)友提起mq積累的問題啥繁,也不知道他們是工作場景中遇到實(shí)際問題菜职,還是說在面試過程中遇到這樣的問題青抛,因此想知道這個問題答案旗闽。不管是哪種情況吧,那么接下來我就以自然語言的方式與大家輕松的來討論一下mq相關(guān)的東西吧蜜另。

什么是mq?

什么是mq呢适室?其實(shí)相比mq這個叫法,國內(nèi)好多朋友更喜歡叫消息隊列举瑰,既然是這樣的話捣辆,那么想必mq一定是

message

queue的縮寫了,通常mq的工作方式都是委托模式此迅,是一個生產(chǎn)者消費(fèi)者的模式汽畴,一般順序執(zhí)行的程序都是需要耗時的,如果改用使用消息隊列的的話耸序,就可以將一些具體處理業(yè)務(wù)的程序省略掉忍些,直接委托給消息隊列,然后繼續(xù)往下執(zhí)行其他部分坎怪,

然后再委派另一個進(jìn)程去處理消息隊列上的內(nèi)容罢坝,

因此這個過程就可以理解為生產(chǎn)者與消費(fèi)者,生產(chǎn)者只負(fù)責(zé)往消息隊列中添加內(nèi)容搅窿,而消費(fèi)者則負(fù)責(zé)處理消息隊列中的內(nèi)容嘁酿,一個負(fù)責(zé)讓隊列壯大隙券,一個負(fù)責(zé)讓隊列減小。

mq用于解決什么問題闹司?? ?

那么mq用于解決什么樣的問題呢娱仔?在什么樣的場景下比較適合使用mq呢?以我個人的語言來說游桩,mq適合于解決那些高并發(fā)非實(shí)時的問題拟枚,舉個實(shí)際例子,比如發(fā)郵件众弓,在程序中大量用到發(fā)郵件的話恩溅,大家都知道發(fā)郵件程序也是需要耗時的,你在運(yùn)行業(yè)務(wù)程序時谓娃,運(yùn)行到一半的時候脚乡,因?yàn)榘l(fā)郵件程序?qū)е鲁绦蛟谀寝D(zhuǎn)了一小會才繼續(xù)往后執(zhí)行這顯然是體驗(yàn)很不好的,如果再有一定并發(fā)的情況滨达,那簡直是沒法看了奶稠,因此這種情況下就把mq用上,到發(fā)郵件的時候捡遍,不做實(shí)際發(fā)郵件動作锌订,只是委托給消息隊列,在隊列上加入一條消息画株,然后就繼續(xù)執(zhí)行辆飘,這樣的話就大大的增加了體驗(yàn)的流暢度。

為了更進(jìn)一步說明谓传,再舉一個例子蜈项,就以電商的下單系統(tǒng)為例,做過電商的同學(xué)都知道,下單過程是相對復(fù)雜的過程,同時還用到了事務(wù)师妙,要求數(shù)據(jù)無誤差,要同時修改好多張表跑芳,比如有訂單表,訂單商品表直颅,庫存表博个,庫存日志表,訂單日志表等等际乘,顯然這些復(fù)雜的計算是非常耗時的坡倔,如果多個用戶并發(fā)下單的話,顯然對系統(tǒng)造成巨大的壓力,如果實(shí)時計算的話也不太現(xiàn)實(shí)罪塔,再說了用戶下單后投蝉,還要等待漫長的物流,用戶是不會在乎延遲這幾分鐘或者說幾秒鐘不是么征堪?用戶下完訂單后瘩缆,程序只需要告訴用戶下單成功就行,剩下的就把這部分計算業(yè)務(wù)委托給消息隊列就OK了佃蚜,然后讓消費(fèi)者慢慢去消費(fèi)吧庸娱。

mq為什么會產(chǎn)生數(shù)據(jù)堆積?

那么接下來咱們就探討一下谐算,消息隊列為什么會產(chǎn)生積累熟尉?在回答這個問題之前,我做一個我自己認(rèn)為比較形象的比喻吧洲脂,我認(rèn)為消息隊列就是這樣一個水池子斤儿,這個水池子有一個進(jìn)水管,同時也有一個出水管恐锦,進(jìn)水管負(fù)責(zé)往水池進(jìn)水往果,出水管負(fù)責(zé)從水池往外排水,如果說進(jìn)水管比較細(xì)一铅,進(jìn)水能力小陕贮,出水管比較粗,出水能力強(qiáng)的話潘飘,那么是不是水池永遠(yuǎn)都是空的肮之,相反如果進(jìn)水管很粗,進(jìn)水能力很強(qiáng)福也,出水管很細(xì)局骤,排水能力會差攀圈,那么是不是水池的存水量越來越多暴凑,一直到最后溢出,消息隊列也是同樣的道理赘来,當(dāng)生產(chǎn)者能力大于消費(fèi)者的能力時(系統(tǒng)的并發(fā)訪問過高)现喳,勢必會造成數(shù)據(jù)積累,造成消息隊列大量數(shù)據(jù)的堆積犬辰。

如何解決mq堆積問題嗦篱?

上面已經(jīng)對消息隊列的應(yīng)用場景有了說明,產(chǎn)生mq堆積的原因也十分明確了幌缝,那么mq的堆積問題如何解決呢灸促?那答案自然是增加消費(fèi)者的消費(fèi)能力或者降低生產(chǎn)者的生產(chǎn)能力,當(dāng)然降低生產(chǎn)者的生產(chǎn)能力顯然是不現(xiàn)實(shí)呢,你總不能不讓用戶下單吧浴栽,用戶的行為你無法管荒叼,因此要做的只能是增加消費(fèi)者的消費(fèi)能力了,比如增加多個進(jìn)程同時消費(fèi)處理典鸡,比如有3個生產(chǎn)者進(jìn)程在生產(chǎn)被廓,可以設(shè)置10個消費(fèi)者進(jìn)程來消費(fèi),或者更據(jù)具體的業(yè)務(wù)場景或者高效的處理語言與算法來增加消費(fèi)者的消費(fèi)能力萝玷,總之讓生產(chǎn)者生產(chǎn)能力小于消費(fèi)者的消費(fèi)能力嫁乘,通過這種方式就可以逐漸減少消息隊列的數(shù)據(jù)堆積了。

另外球碉,最后要說一點(diǎn)蜓斧,mq只是一個技術(shù)模型,與哪種計算機(jī)語言無關(guān)系睁冬,大多數(shù)語言都可以實(shí)現(xiàn)mq法精,當(dāng)然有的語言會更合適一點(diǎn),對于mq的生產(chǎn)者代碼與mq的消費(fèi)者的代碼痴突,這兩種代碼完全可以是兩種不同的計算機(jī)語言搂蜓,在實(shí)際應(yīng)用場景中,大家根據(jù)實(shí)際的業(yè)務(wù)情況使用最合適的語言辽装,那么關(guān)于mq的討論就暫時聊到這里了帮碰,接下來,關(guān)于mq你還有什么想說的繼續(xù)在評論區(qū)進(jìn)行留言拾积。


以上所有圖片均來之互聯(lián)網(wǎng)? ?

大家好殉挽,我是“上世是朵花”。如果你有什么好的看法或者觀點(diǎn)可以在評論區(qū)展現(xiàn)你的才華拓巧,互動交流斯碌,如果想進(jìn)一步了解我,那就關(guān)注我吧肛度!(微信公眾號:sssdhua )

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傻唾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子承耿,更是在濱河造成了極大的恐慌冠骄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件加袋,死亡現(xiàn)場離奇詭異凛辣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)职烧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門扁誓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來防泵,“玉大人,你說我怎么就攤上這事蝗敢≡窨耍” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵前普,是天一觀的道長肚邢。 經(jīng)常有香客問我,道長拭卿,這世上最難降的妖魔是什么骡湖? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮峻厚,結(jié)果婚禮上响蕴,老公的妹妹穿的比我還像新娘。我一直安慰自己惠桃,他們只是感情好浦夷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辜王,像睡著了一般劈狐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呐馆,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天肥缔,我揣著相機(jī)與錄音,去河邊找鬼汹来。 笑死续膳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的收班。 我是一名探鬼主播坟岔,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摔桦!你這毒婦竟也來了社付?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤酣溃,失蹤者是張志新(化名)和其女友劉穎瘦穆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赊豌,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年绵咱,在試婚紗的時候發(fā)現(xiàn)自己被綠了碘饼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熙兔。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艾恼,靈堂內(nèi)的尸體忽然破棺而出住涉,到底是詐尸還是另有隱情,我是刑警寧澤钠绍,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布舆声,位于F島的核電站,受9級特大地震影響柳爽,放射性物質(zhì)發(fā)生泄漏媳握。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一磷脯、第九天 我趴在偏房一處隱蔽的房頂上張望蛾找。 院中可真熱鬧,春花似錦赵誓、人聲如沸打毛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幻枉。三九已至,卻和暖如春诡蜓,著一層夾襖步出監(jiān)牢的瞬間展辞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工万牺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罗珍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓脚粟,卻偏偏與公主長得像覆旱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子核无,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

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