">

婷婷五色,五月天激情婷婷大综合,亚洲综合久久久久久中文字幕,国产ww久久久久久久久久,婷婷综合缴情亚洲五月伊,欧美日韩不卡在线

首頁 > 生活 >

【世界播資訊】阿里面試官:什么是消息隊列,為什么用消息隊列,用了有什么問題-今日看點

面試開始

小伙子之前問了你這么多Redis的知識,你不僅對答如流,你還能把各自場景的解決方案,優缺點說得這么流暢,說你是不是看過敖丙寫的《吊打面試官》系列呀?

驚!!!老師你怎么知道的,我看了他的系列根本停不下來啊。

呵呵,Redis沒難住你,但是我問個新的技術棧我還怕難不住你?我問問你你項目中用過消息隊列么?你為啥用消息隊列?

噗此,這也叫問題?別人用了我能不用么?別人用了我就用了唄,我就是為了用而用。

你心里嘀咕就好了,千萬別說出來哈,說出來了沒拿到Offer別到時候就在那說,敖丙那個渣男教我說的!


(相關資料圖)


(資料圖片僅供參考)

面試官你好:我們公司本身的業務體量很小,所以直接單機一把梭啥都能搞定了,但是后面業務體量不斷擴大,采用微服務的設計思想分布式的部署方式,所以拆分了很多的服務,隨著體量的增加以及業務場景越來越復雜了,很多場景單機的技術棧和中間件以及不夠用了,而且對系統的友好性也下降了,最后做了很多技術選型的工作,我們決定引入消息隊列中間件

哦?你說到業務場景越來越復雜,你那說一下你都在什么場景用到了消息隊列?

嗯,我從三個方面去說一下我使用的場景吧。

Tip:這三個場景也是消息隊列的經典場景,大家基本上要爛熟于心那種,就是一說到消息隊列你腦子就要想到異步、削峰、解耦,條件反射那種。

異步:

我們之前的場景里面有很多步驟都是在一個流程里面需要做完的,就比如說我的下單系統吧,本來我們業務簡單,下單了付了錢就好了,流程就走完了。

但是后面來了個產品經理,搞了個優惠券系統,OK問題不大,流程里面多100ms去扣減優惠券。

后來產品經理靈光一閃說我們可以搞個積分系統啊,也行吧,流程里面多了200ms去增減積分。

再后來后來隔壁的產品老王說:下單成功后我們要給用戶發短信,也將就吧,100ms去發個短信。

再后來。。。(敖丙你有完沒完!!!)

反正就流程有點像這樣 ↓

你們可以看到這才加了三個,我可以斬釘截鐵的告訴你真正的下單流程涉及的系統絕對在10個以上(主流電商),越大的越多。

這個鏈路這樣下去,時間長得一批,用戶發現我買個東西你特么要花幾十秒,垃圾電商我不在你這里買了,不過要是都像并夕夕這么便宜,真香

但是我們公司沒有夕夕的那個經濟實力啊,那只能優化系統了。

Tip:我之前在的電商老東家要求所有接口的RtResponseTime響應時間)在200ms內,超出的全部優化,我現在所負責的系統QPS也是9W+就是抖動一下網絡集群都可能炸鍋那種,RT基本上都要求在50ms以內。

大家感受一下這個QPS。

嗯不錯,鏈路長了就慢了,那你怎么解決的?

那鏈路長了就慢了,但是我們發現上面的流程其實可以同時做的呀,你支付成功后,我去校驗優惠券的同時我可以去增減積分啊,還可以同時發個短信啊。

那正常的流程我們是沒辦法實現的呀,怎么辦,異步

你對比一下是不是發現,這樣子最多只用100毫秒用戶知道下單成功了,至于短信你遲幾秒發給他他根本不在意是吧。

小伙子我打斷你一下,你說了異步,那我用線程,線程池去做不是一樣的么?

誒呀,面試官你不要急嘛,我后面還會說到的,騷等。

解耦:

既然面試官這么問了,我就說一下為啥我們不能用線程去做,因為用線程去做,你是不是要寫代碼?

你一個訂單流程,你扣積分,扣優惠券,發短信,扣庫存。。。等等這么多業務要調用這么多的接口,每次加一個你要調用一個接口然后還要重新發布系統,寫一次兩次還好,寫多了你就說:老子不干了!

而且真的全部都寫在一起的話,不單單是耦合這一個問題,你出問題排查也麻煩,流程里面隨便一個地方出問題搞不好會影響到其他的點,小伙伴說我每個流程都try catch不就行了,相信我別這么做,這樣的代碼就像個定時炸彈,你不知道什么時候爆炸,平時不炸偏偏在你做活動的時候炸,你就領個P0故障收拾書包提前回家過年吧。

Tip:P0—PN 是互聯網大廠經常用來判定事故等級的機制,P0是最高等級了。

但是你用了消息隊列,耦合這個問題就迎刃而解了呀。

哦,帥丙怎么說?

且聽我娓娓道來:

你下單了,你就把你支付成功的消息告訴別的系統,他們收到了去處理就好了,你只用走完自己的流程,把自己的消息發出去,那后面要接入什么系統簡單,直接訂閱你發送的支付成功消息,你支付成功了我監聽就好了

那你的流程走完了,你不用管別人是否成功么?比如你下單了積分沒加,優惠券沒扣怎么辦?

問題是個好問題,但是沒必要考慮,業務系統本身就是自己的開發人員維護的,你積分扣失敗關我下單的什么事情?你管好自己下單系統的就好了。

Tip:話是這么說,但是這其實是用了消息隊列的一個缺點,涉及到分布式事務的知識點,我下面會提到。

削峰:

就拿我上一期寫的秒殺來說(暗示新同學看我上一期),你平時流量很低,但是你要做秒殺活動00 :00的時候流量瘋狂懟進來,你的服務器,RedisMySQL各自的承受能力都不一樣,你直接全部流量照單全收肯定有問題啊,直接就打掛了。

那怎么辦?

簡單,把請求放到隊列里面,然后至于每秒消費多少請求,就看自己的服務器處理能力,你能處理5000QPS你就消費這么多,可能會比正常的慢一點,但是不至于打掛服務器,等流量高峰下去了,你的服務也就沒壓力了。

你看阿里雙十一12:00的時候這么多流量瞬間涌進去,他有時候是不是會慢一點,但是人家沒掛啊,或者降級給你個友好的提示頁面,等高峰過去了又是一條好漢了。

為了這個圖特意打高一臺服務的流量

聽你說了辣么多,怎么都是好處,那我問你使用了消息隊列有啥問題么?

誒,看過前面我寫的文章的人才都知道,我經常說的就是,技術是把雙刃劍

沒錯面試官,我使用他是因為他帶給我們很多好處,但是使用之后問題也是接踵而至

同樣的暖男我呀,也從三個點介紹他主要的缺點:

系統復雜性

本來蠻簡單的一個系統,我代碼隨便寫都沒事,現在你憑空接入一個中間件在那,我是不是要考慮去維護他,而且使用的過程中是不是要考慮各種問題,比如消息重復消費消息丟失消息的順序消費等等,反正用了之后就是賊煩。

我插一句嘴,上面的問題(重復消費、消息丟失、順序消費)你能分別介紹一下,并且說一下分別是怎么解決的么?

不要!我都說了敖丙下一章寫啥?

其實不是暖男我不想在這里寫,這三個問題我想了下,統統都是MQ重點問題,單獨拿一個出來就是一篇文章了,篇幅實在太長了,我會在下一章挨個介紹一遍的。

數據一致性

這個其實是分布式服務本身就存在的一個問題,不僅僅是消息隊列的問題,但是放在這里說是因為用了消息隊列這個問題會暴露得比較嚴重一點。

就像我開頭說的,你下單的服務自己保證自己的邏輯成功處理了,你成功發了消息,但是優惠券系統,積分系統等等這么多系統,他們成功還是失敗你就不管了?

我說了保證自己的業務數據對的就好了,其實還是比較不負責任的一種說法,這樣就像個渣男,沒有格局這樣呀你的路會越走越窄的

所有的服務都成功才能算這一次下單是成功的,那怎么才能保證數據一致性呢?

分布式事務:把下單,優惠券,積分。。。都放在一個事務里面一樣,要成功一起成功,要失敗一起失敗。

Tip:分布式事務在互聯網公司里面實在常見,我也不在這里大篇幅介紹了,后面都會專門說的。

可用性

你搞個系統本身沒啥問題,你現在突然接入一個中間件在那放著,萬一掛了怎么辦?我下個單MQ掛了,優惠券不扣了,積分不減了,這不是殺一個程序員能搞定的吧,感覺得殺一片。

至于怎么保證高可用,還是那句話也不在這里展開討論了,我后面一樣會寫,像寫Redis那樣寫出來的。

放心敖丙我不是渣男來的,我肯定會對你們負責的。點贊!

看不出來啊,你有點東西呀,那我問一下你,你們是怎么做技術選型的?

目前在市面上比較主流的消息隊列中間件主要有,Kafka、ActiveMQ、RabbitMQ、RocketMQ等這幾種。

不過敖丙我想說的是,ActiveMQRabbitMQ這兩著因為吞吐量還有GitHub的社區活躍度的原因,在各大互聯網公司都已經基本上絕跡了,業務體量一般的公司會是有在用的,但是越來越多的公司更青睞RocketMQ這樣的消息中間件了。

KafkaRocketMQ一直在各自擅長的領域發光發亮,不過寫這篇文章的時候我問了螞蟻金服,字節跳動和美團的朋友,好像大家用的都有點不一樣,應該都是各自的中間件,可能做過修改,也可能是自研的,大多沒有開源

就像我們公司就是是基于KafkaRocketMQ兩者的優點自研的消息隊列中間件,吞吐量、可靠性、時效性等都很可觀。

我們回歸正題,我這里用網上找的對比圖讓大家看看差距到底在哪里:

大家其實一下子就能看到差距了,就拿吞吐量來說,早期比較活躍的ActiveMQRabbitMQ基本上不是后兩者的對手了,在現在這樣大數據的年代吞吐量是真的很重要

比如現在突然爆發了一個超級熱點新聞,你的APP注冊用戶高達億數,你要想辦法第一時間把突發全部推送到每個人手上,你沒有大吞吐量的消息隊列中間件用啥去推?

再說這些用戶大量涌進來看了你的新聞產生了一系列的附帶流量,你怎么應對這些數據,很多場景離開消息隊列基本上難以為繼

部署方式而言前兩者也是大不如后面兩個天然分布式架構的哥哥,都是高可用的分布式架構,而且數據多個副本的數據也能做到0丟失。

我們再聊一下RabbitMQ這個中間件其實還行,但是這玩意開發語言居然是erlang,我敢說絕大部分工程師肯定不會為了一個中間件去刻意學習一門語言的,開發維護成本你想都想不到,出個問題查都查半天。

至于RocketMQ(阿里開源的),git活躍度還可以。基本上你push了自己的bug確認了有問題都有阿里大佬跟你試試解答并修復的,我個人推薦的也是這個,他的架構設計部分跟同樣是阿里開源的一個RPC框架是真的很像(Dubbo)可能是因為師出同門的原因吧。

Tip:Dubbo等我寫到RPC我會詳細介紹的。

Kafka我放到最后說,你們也應該知道了,壓軸的這是個大哥,大數據領域,公司的日志采集,實時計算等場景,都離不開他的身影,他基本上算得上是世界范圍級別的消息隊列標桿了。

以上這些都只是一些我自己的個人意見,真正的選型還是要去深入研究的,不然那你公司一天UV就1000你告訴我你要去用Kafka我只能說你吃飽撐的。

記住,沒有最好的技術,只有最適合的技術,不要為了用而用

面試結束

嗯,小伙子不錯不錯,分析得很到位,那你記得下期來說一下消息隊列的高可用,重復消費、消息丟失、消息順序、分布式事務等問題?

嗯嗯好的面試官,不過不確定能不能一口氣說完,畢竟敖丙還沒開始寫,而且讀者還有可能白嫖,動力不一定夠。

嗯嗯這倒是個問題,不過啊在看的都是人才肯定會給你點贊的!

我也這么認為。

鳴謝

之前的文章寫了很多人加我,然后有個人才說是他螞蟻金服的Leader推薦的我,我突然意識到我文章的受眾好像慢慢變廣了,之后不嚴謹的點要杜絕掉。

所以之后我的文章經常會有大廠的小伙伴Review,也希望幫助我更好的監督自己的文章吧。

這次是 某阿里系電商跟我一起做過活動小組的 佩恩幫我Review的文章,感謝!

關鍵詞:

責任編輯:Rex_20

推薦閱讀

微軟Excel推新沉浸閱讀器

· 2023-05-20 14:15:23

喊泉設備多少錢一套_喊泉

· 2023-05-20 10:11:04

云集美股跌20.59%

· 2023-05-20 09:47:05
日韩免费无码专区精品观看| 亚洲AV乱码一区二区三区按摩| 超碰人人澡人人胔| 久久久久久久久精品无码中文字幕| 亚洲欧洲∨国产一区二区三区| 精品无人区一区二区三区在线| 亚洲午夜精品久久久久久浪潮| 久久无码中文字幕免费影院蜜桃| 中国成熟妇女毛茸茸| 男生白内裤自慰GV白袜男同| JEAⅠOUSVUE成熟少归| 日本高清XXXXXXXXXX| 伽罗ちゃんが腿法| 无码无套少妇毛少18PXX| 好爽…又高潮了粉色视频| 亚洲另类欧美综合久久图片区| 久久久久久精品免费久久18| А√天堂资源在线官网BT| 日日狠狠久久偷偷色综合免费| 国产成人无码精品久久久露脸 | 浴室人妻的情欲HD三级| 美女高潮无遮挡免费视频| CHINESE猛攻打桩大学生| 日韩精品无码成人专区| 国产精品国产三级国产试看| 亚洲AV无码传区国产乱码O| 久久精品成人免费国产片| 性欧美乱妇COME| 欧洲洲一区二区精华液| 国产99久9在线 | 传媒| 亚洲AV无码精品无码麻豆| 免费人成视频网站在线18| 成人国产亚洲精品A区| 无码一区二区三区蜜桃| 美女被强奸到高潮在线| 国产成人无码AⅤ片在线观看导航 国产成人无码AⅤ片在线观看 | 漂亮人妻被中出中文字幕久久| 国产美女裸体无遮挡免费视频高潮| 亚洲精品国偷自产在线 | 国产亚洲日韩在线三区| 野花高清在线电影观看免费视频 | 久久99九九精品久久久久蜜桃| 52秋霞东北熟女叫床| 色婷婷久久久SWAG精品| 国色天香一卡2卡三卡4卡乱码| 真人做受试看120分钟小视频| 手机国产乱子伦精品视频| 狠狠躁夜夜躁人爽碰88A | 精品国产黑色丝袜高跟鞋| 16ⅤIDE0SEX性欧| 色妞WWW精品视频| 久久精品国产欧美日韩| 懂色av一区二区三区蜜臀| 亚洲AV中文AⅤ无码AV接吻| 蜜桃AV人片在线观看| 饭桌上故意张开腿让公H| 一边做饭一边躁狂怎么办呢69| 人妻无码一区二区在线影院| 国产无遮挡又黄又爽不要VIP网| 曰韩无码二三区中文字幕| 完整版免费AV片| 被夫上司强迫的女人在线中文| 无码精品人妻一区二区三区aV | 国产熟睡乱子伦视频| 99无人区码一码二码三码| 玩弄丰满奶水的女邻居| 久久久久无码精品国产| 哺乳挤奶一区二区三区免费看| 亚洲AV永久无码精品少妇 | 亚洲最大AV资源站无码AV网址| 熟女一区二区三区| 久久精品久久精品中文字幕| 宝贝你夹得太紧了我都要断了| 亚洲熟悉妇女XXX妇女AV| 日本AⅤ精品一区二区三区久久| 国产性色强伦免费视频| 中文字幕一区二区三区乱码 | 色噜噜狠狠色综合久色AⅤ网| 老狼一区忘忧草欢迎您大豆男男 | 1000部拍拍拍18勿入免费视频下载| 性色欲情侣网站WWW| 妺妺窝人体色WWW网| 国产乱XXXX搡XXXXX搡| 最新69国产成人精品视频免费 | 丰满少妇发泄14P| 夜夜香夜夜摸夜夜添视频| 色欲AV无码中字乱人伦在线 | 国产精品久久婷婷六月丁香| 中文字幕久久波多野结衣AV| 爽到高潮无码视频在线观看| 欧产日产国产精品精品| 国产午夜精华无码网站| 成年大片免费视频播放| 中文精品一区二区三区四区| 无码精品毛片波多野结衣| 欧美精品久久天天躁| 好男人观看免费视频2019| 伽罗ちゃんが腿法| 99久久国产综合精品女| 亚洲一区二区三区偷拍女厕| 无码人妻精品一区二区蜜桃AV| 男男GV白嫩小受GV在线播放| 国产热の有码热の无码视频| A级毛片免费观看网站| 野花AⅤ亚洲高清完整版在线观看 野花 高清 中文 免费 日本 | 中文字AV字幕在线观看| 亚洲国产精品无码中文在线| 日韩乱码人妻无码超清蜜桃丨 | 亚洲熟妇另类AV老熟女| 性XXXXBBBB农村小树林| 人妻[21p]大胆| 久久高清内射无套| 国产无遮挡又黄又爽不要VIP网| 处 女 开 破视频处CT开| 永久免费无码AV在线网站 | 天美传媒自制剧免费观看| 免费无码又爽又刺激高潮的动态图| 精品人妻系列无码人妻不卡| 国产MV在线天堂MV免费观看| 93久久精品日日躁夜夜躁欧美| 亚洲AV综合色区无码专区蜜桃| 天堂无码人妻精品一区二区三区| 欧美Z0ZO人禽交| 久久精品国产99久久丝袜蜜桃| 国产性大战XXXXX久久久| 国产成人精品久久综合| 97久久精品无码一区二区天美| 夜夜高潮夜夜爽高清完整版1 | 国产成人午夜福利不卡在线观看 | 欧美最猛黑人XXXX黑人猛交9 | 午夜男女无遮挡啪拍视频| 人妻一区二区三区高清AV专区 | 久久天堂综合亚洲伊人HD妓女| 精品国产一区二区三区吸毒| 国产在线精品一区二区高清不卡| 国产成人一区二区三区在线 | 又爽又刺激免费男女视频| 亚洲色AV无码AV丰满AV| 无码专区中文字幕无码野外| 少妇粉嫩小泬喷水视频在线观看 | 玉蒲团2之玉女心经| 亚洲综合网站色欲色欲| 亚洲乱码在线卡一卡二卡新区 | 国产青草视频在线观看| 国产精品乱码一区二区三| 国产成人精品无码青草| 丰满人妻被中出中文字幕| 吃了继兄开的药我做的梦更| 宝宝好大我都握不住了视频| ZOOM与人性ZOOM视频| 岳把我用嘴含进满足我视频| 亚洲国产精品无码久久九九大片| 亚洲AV无码久久久久久精品| 亚洲AV成人影视综合网| 天堂99久久久久久久久久久| 熟妇人妻久久中文字幕老熟妇| 少妇精品久久久一区二区| 色欲AV蜜臀AV在线观看麻豆| 色妓AV人妻一区二区三区| 三上悠亚AV资源站| 少妇伦子伦精品无吗| 手机在线观看AV片| 天堂А√在线中文在线| 偷欢人妻激情系列| 无码熟妇人妻AV在线C0930| 午夜理论片YY6080影院| 丝袜AV在线丝袜AV天堂| 天天躁夜夜躁狠狠夜夜| 无码日韩精品一区二区免费暖暖| 无码一区二区三区在线观看| 亚洲AⅤ中文无码字幕色| 亚洲AV无码国产精品夜色午夜| 亚洲AV无码乱码精品国产按摩| 亚洲AV午夜福利精品一区人妖| 亚洲精品99久久久久中文字幕 | 国产亚洲日韩在线A不卡| 国产亚洲精品精品精品| 精产国品一二三产品区别在哪| 国产人成视频在线观看| 好男人WWW在线影院官网| 精品无码视频一区二区三区| 久久精品熟女亚洲AV麻豆| 老外免费CSGO交易网站有哪些| 久久久久久AV无码免费网站下载| 巨胸爆乳美女露双奶头挤奶| 你的婚礼免费观看完整版| 人妻丰满熟妇岳AV无码区HD| 欧美虐SM另类残忍视频| 男女24式动态图| 人妻丝袜中文无码AV影音先锋专| 日韩人妻精品无码一区二区三区| 丝袜灬啊灬快灬高潮了AV | 国产激情久久久久久熟女老人| 国产女人水真多18毛片18精品| 极品尤物一区二区三区| 久久久久人妻精品一区三寸蜜桃 | 久久久久亚洲AV无码专区蜜芽 | 精品人无码一区二区三区| 久久综合九色综合欧洲98| 年轻的少妇A级伦理|