一周領(lǐng)了三次罰單,這是什么破消息隊(duì)列?
罰單
上周四,正在努力coding,家里那位突然在微信上甩過來(lái)一張截圖:

違章停車被罰了?。?!
頓時(shí)慌得一逼,這個(gè)月的生活費(fèi)又要扣錢了~

稍稍緩了緩,再詳細(xì)看了一下違停的拍照,想起來(lái)了:時(shí)間發(fā)生在前天(星期二)早晨,我就停在路邊去買了個(gè)早餐,全程不超過3分鐘!3分鐘=扣3分+罰款100元,這早餐吃的也太TM貴了。

約莫一分鐘后,我突然意識(shí)到:我今天(星期四)早上,又停在這里買了一次早飯?。。?/strong>
我要裂開了!

不過我還是抱著僥幸心理,說(shuō)不定交警叔叔看在我連續(xù)停了兩次,看我不知道違章就把第二次給我免了呢?

然而事實(shí)狠狠的打了我的臉,幾個(gè)小時(shí)后,媳婦又給我發(fā)來(lái)了一張截圖:

當(dāng)時(shí)心中一萬(wàn)頭草泥馬奔騰而過,今晚下班,我是不是得把公司的鍵盤帶回家了···

幸好周三限號(hào)沒開成,要不然還不直接給我來(lái)個(gè)三連???
之前我也一直停在這里買早飯,從來(lái)沒有被拍過,這攝像頭估計(jì)是最近才裝上去的,要怪只能怪自己吧,唉~
但隨后我開始琢磨起一個(gè)問題來(lái):為什么前天和今天的違停消息,今天一次性給我推送過來(lái)了? 要是前天的違章信息也能當(dāng)天就發(fā)送,我也不至于連續(xù)違停兩次啊。
這是用的什么破消息隊(duì)列在推送???
假如這交警隊(duì)的系統(tǒng)用到了消息隊(duì)列,那到底用的什么消息隊(duì)列呢?
消息隊(duì)列
首先什么是消息隊(duì)列?
消息隊(duì)列,也就是MessageQueue,那它得先是個(gè)隊(duì)列。
隊(duì)列咱們不會(huì)陌生,一個(gè)遵循先進(jìn)先出(FIFO)的數(shù)據(jù)容器,在編程開發(fā)中,經(jīng)常會(huì)用到隊(duì)列。比如一個(gè)或多個(gè)線程產(chǎn)生任務(wù)消息投遞到隊(duì)列中,另外一個(gè)或多個(gè)線程從隊(duì)列中取出消息來(lái)處理,典型的生產(chǎn)者-消費(fèi)者模型。

上面描述的場(chǎng)景是單機(jī)上的情況,如何實(shí)現(xiàn)跨越多臺(tái)服務(wù)器的生產(chǎn)者-消費(fèi)者模型呢?
消息隊(duì)列很好的解決了這個(gè)問題。
使用消息隊(duì)列有三大優(yōu)勢(shì):
削峰:大量請(qǐng)求懟過來(lái),數(shù)據(jù)庫(kù)往往難以招架,而如果將請(qǐng)求放入消息隊(duì)列中,可起到緩沖削峰的作用。
解耦:生產(chǎn)者只管將消息寫入,至于誰(shuí)來(lái)讀取消費(fèi),什么時(shí)候消費(fèi)不必關(guān)心,以此實(shí)現(xiàn)將生產(chǎn)者與消費(fèi)者徹底解耦。
異步:如果一個(gè)任務(wù)處理的時(shí)間太長(zhǎng),可將任務(wù)投遞到隊(duì)列中,不必阻塞等待處理鏈上后續(xù)處理,實(shí)現(xiàn)異步。
常見的四大消息隊(duì)列:

Kafka:使用Scale和Java開發(fā),單機(jī)吞吐量達(dá)到10W級(jí),時(shí)效性達(dá)到ms級(jí),支持分布式部署,消息穩(wěn)定性高!常用于日志處理分析場(chǎng)景。
RabbitMQ:使用冷門語(yǔ)言erlang開發(fā),吞吐量達(dá)到萬(wàn)級(jí)別,時(shí)效性達(dá)到微秒級(jí),可以說(shuō)是非??炝?。
ActiveMQ:使用Java開發(fā),吞吐量同樣是萬(wàn)級(jí)別,時(shí)效性也是ms級(jí),消息可靠度也要低一些。
RocektMQ:同樣使用Java開發(fā),阿里巴巴出品,從名字可以看出,如火箭一般快,支持10W級(jí)吞吐量。
這幾個(gè)消息隊(duì)列都很快啊,沒有哪個(gè)達(dá)到了天級(jí)別的延時(shí),所以這鍋消息隊(duì)列應(yīng)該不能背。
真要是用了消息隊(duì)列,我多么希望是一個(gè)特別容易丟消息的隊(duì)列,把我的違停消息丟掉吧。只可惜RocketMQ和Kafka理論上基本不會(huì)丟失,ActiveMQ和RabbitMQ也只是很小很小的概率會(huì)丟失數(shù)據(jù)。
交警局的違章記錄應(yīng)該是有人工審核,所以這事兒,多半還是人的問題,所以···
遲到的三聯(lián)
然鵝,三連只會(huì)遲到,不會(huì)缺席。就在周末出門辦事兒,停在路邊一盞茶的功夫,交警叔叔給我送來(lái)了第三張罰單:

我這不是被交警蜀黍盯上了吧?此刻,我已經(jīng)不敢回頭看媳婦臉上的表情了

不過我還是抱了一點(diǎn)點(diǎn)的僥幸心理:這只是違停通知,說(shuō)不定不會(huì)給我報(bào)上去,畢竟之前也遇到過貼了罰單但最后沒處理的情況呢!
不知道怎么回事,這一次的消息隊(duì)列特別給力,沒多久,啪的一下,短信又來(lái)了,很快啊!
我對(duì)這神秘的消息推送機(jī)制徹底迷茫了,一會(huì)兒快,一會(huì)兒慢,一會(huì)兒甚至卡幾天!
這個(gè)月還未過半,交罰款就好幾百出去了,兜里的零花錢不知道還能不能撐到月底了···
關(guān)于罰單消息延遲推送,這事兒你怎么看?你們有遇到這樣的情況嗎?
交警叔叔都給我三連了,你們就別吝惜三連了啊~
往期TOP5文章
CPU明明8個(gè)核,網(wǎng)卡為啥拼命折騰一號(hào)核?
哈希表哪家強(qiáng)?幾大編程語(yǔ)言吵起來(lái)了!
