RocketMQ:消息中間件簡介

1. 什么是消息中間件

(1)什么是消息拨脉?

消息是指:在應(yīng)用程序之間傳遞的數(shù)據(jù)或衡。消息可以非常簡單焦影,比如只包含文本字符串、JSON等封断;但也可以很復(fù)雜斯辰,比如一個對象。

(2)什么是消息中間件坡疼?

消息中間件是指:利用高效可靠的消息傳遞機(jī)制進(jìn)行與平臺無關(guān)的數(shù)據(jù)(我們說消息就是數(shù)據(jù)彬呻,所以這里也就是消息)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。

2. 消息中間件的優(yōu)缺點(diǎn)

2.1 優(yōu)點(diǎn)

(1)應(yīng)用解耦

系統(tǒng)的耦合性越高闸氮,容錯性就越低剪况。以電商應(yīng)用為例,用戶創(chuàng)建訂單后蒲跨,如果耦合調(diào)用庫存系統(tǒng)译断、物流系統(tǒng)、支付系統(tǒng)或悲,任何一個子系統(tǒng)出了故障或者因?yàn)樯壍仍驎簳r(shí)不可用孙咪,都會造成下單操作異常,影響用戶使用體驗(yàn)隆箩。

使用消息中間件解耦合该贾,系統(tǒng)的耦合性就提高了。比如物流系統(tǒng)發(fā)生故障捌臊,需要幾分鐘才能來修復(fù)杨蛋,在這段時(shí)間內(nèi),物流系統(tǒng)要處理的數(shù)據(jù)被緩存到消息中間件中理澎,用戶的下單操作正常完成逞力。當(dāng)物流系統(tǒng)恢復(fù)后,補(bǔ)充處理存在消息中間件中的訂單消息即可糠爬,終端系統(tǒng)感知不到物流系統(tǒng)發(fā)生過幾分鐘故障寇荧。

(2)流量削峰

應(yīng)用系統(tǒng)如果遇到系統(tǒng)請求流量的瞬間猛增,有可能會將系統(tǒng)壓垮执隧。有了消息中間件可以將大量請求緩存起來揩抡,分散到很長一段時(shí)間處理,這樣可以大大提到系統(tǒng)的穩(wěn)定性和用戶體驗(yàn)镀琉。

一般情況峦嗤,為了保證系統(tǒng)的穩(wěn)定性,如果系統(tǒng)負(fù)載超過閾值屋摔,就會阻止用戶請求烁设,這會影響用戶體驗(yàn),而如果使用消息中間件將請求緩存起來钓试,等待系統(tǒng)處理完畢后通知用戶下單完畢装黑,這樣比不能下單體驗(yàn)要好。

(3)異步通信

通過消息中間件可以讓數(shù)據(jù)在多個系統(tǒng)更加之間進(jìn)行流通弓熏。數(shù)據(jù)的產(chǎn)生方不需要關(guān)心誰來使用數(shù)據(jù)恋谭,只需要將數(shù)據(jù)發(fā)送到消息中間件,數(shù)據(jù)使用方直接從消息中間件中獲取數(shù)據(jù)即可硝烂。

2.2 缺點(diǎn)

(1)系統(tǒng)可用性降低

系統(tǒng)引入的外部依賴越多箕别,穩(wěn)定性越差铜幽。一旦MQ宕機(jī),就會對業(yè)務(wù)造成影響串稀。這就帶來一個問題:我們?nèi)绾伪WCMQ的高可用除抛?(解決方案:搭建MQ集群)

(2)系統(tǒng)復(fù)雜度提高

MQ的加入雖然降低了應(yīng)用程序之間的耦合性,但也大大增加了系統(tǒng)的復(fù)雜度母截,以前系統(tǒng)間是同步的遠(yuǎn)程調(diào)用到忽,現(xiàn)在是通過MQ進(jìn)行異步調(diào)用。同樣的清寇,這里會帶來幾個問題:如何保證消息沒有被重復(fù)消費(fèi)喘漏?(解決方案:冪等校驗(yàn))怎么保證消息不丟失?(解決方案:消息中間件接收到消息需要給生產(chǎn)者ack回復(fù)华烟;消息中間件需要進(jìn)行消息持久化翩迈;消費(fèi)者手動進(jìn)行ack)如何保證消息的順序性?(解決方案:只能保證在同一隊(duì)列的消息有序性)

(3)一致性問題

使用事務(wù)消息或者配合本地消息表實(shí)現(xiàn)最終一致盔夜。

3. 各個MQ產(chǎn)品的比較

現(xiàn)在市場上常見的MQ產(chǎn)品主要包括:ActiveMQ负饲、RabbitMQ、RocketMQ喂链、kafka返十。每個產(chǎn)品都有自己的優(yōu)缺點(diǎn)以及使用場景,部分特性的比較如下:

特性 ActiveMQ RabbitMQ RocketMQ kafka
開發(fā)語言 java erlang java scala
單機(jī)吞吐量 萬級 萬級 十萬級 十萬級
時(shí)效性 ms級 us級 ms級 ms級
可用性 高(主從架構(gòu)) 高(主從架構(gòu)) 非常高(分布式架構(gòu)) 非常高(分布式架構(gòu))
功能特性 成熟的產(chǎn)品椭微,在很多公司得到應(yīng)用洞坑;有較多的文檔;支持各種協(xié)議蝇率。 基于erlang開發(fā)迟杂,并發(fā)能力很強(qiáng),性能極其好本慕,延時(shí)較低逢慌;有非常完善和豐富的管理界面。 MQ功能比較完善间狂,擴(kuò)展性好。 適用于大數(shù)據(jù)領(lǐng)域應(yīng)用火架。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鉴象,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子何鸡,更是在濱河造成了極大的恐慌纺弊,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骡男,死亡現(xiàn)場離奇詭異淆游,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門犹菱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拾稳,“玉大人,你說我怎么就攤上這事腊脱》玫茫” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵陕凹,是天一觀的道長悍抑。 經(jīng)常有香客問我,道長杜耙,這世上最難降的妖魔是什么搜骡? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮佑女,結(jié)果婚禮上记靡,老公的妹妹穿的比我還像新娘。我一直安慰自己珊豹,他們只是感情好簸呈,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布煤蚌。 她就那樣靜靜地躺著蒿涎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哨坪。 梳的紋絲不亂的頭發(fā)上贩幻,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天轿腺,我揣著相機(jī)與錄音,去河邊找鬼丛楚。 笑死族壳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趣些。 我是一名探鬼主播仿荆,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坏平!你這毒婦竟也來了拢操?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤舶替,失蹤者是張志新(化名)和其女友劉穎令境,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顾瞪,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舔庶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年抛蚁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惕橙。...
    茶點(diǎn)故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞧甩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吕漂,到底是詐尸還是另有隱情亲配,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布惶凝,位于F島的核電站吼虎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苍鲜。R本人自食惡果不足惜思灰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望混滔。 院中可真熱鬧洒疚,春花似錦、人聲如沸坯屿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽领跛。三九已至乏德,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吠昭,已是汗流浹背喊括。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矢棚,地道東北人郑什。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像蒲肋,于是被迫代替她去往敵國和親蘑拯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評論 2 361