學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

消息中間件大全

來源:北大青鳥總部 2023年06月06日 16:01

摘要: 消息中間件就是利用高效可靠的消息傳遞機(jī)制進(jìn)行異步的數(shù)據(jù)傳輸,并基于數(shù)據(jù)通信進(jìn)行分布式系統(tǒng)的集成。通過提供消息隊(duì)列模型和消息傳遞機(jī)制,可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。

在當(dāng)今互聯(lián)網(wǎng)的世界里,互聯(lián)網(wǎng)行業(yè)的“三高”問題已經(jīng)是常態(tài),也因此我們必須要掌握一些可以應(yīng)對(duì)三高問題的技術(shù)。

鑒于很多傳統(tǒng)行業(yè)的小伙伴,對(duì)“三高”不是特別清楚,這里咱么先來解釋下三高的概念。

首先,這個(gè)三高絕對(duì)不是你們所理解的,高血糖、高血脂、高血壓,這三高,對(duì)于程序員來講,估計(jì)這輩子也不會(huì)跟他們有什么關(guān)系(程序員都是精瘦型)。

而互聯(lián)網(wǎng)行業(yè)的,所謂“三高”,高并發(fā)、高性能、高可用,簡稱三高(3H)。



為了應(yīng)對(duì)這些三高問題,我們程序員可是,熬沒了頭發(fā),每天都在思考如何解決這些問題;就在這個(gè)被動(dòng)的解決問題的過程中,技術(shù)在快速的更新迭代,程序員的頭發(fā)也在慢慢凋零。

在技術(shù)迭代的過程中,就出現(xiàn)了一種叫做消息中間件的技術(shù),當(dāng)然這個(gè)消息中間件是一個(gè)統(tǒng)稱了,他里面還包含其他具體的技術(shù)。而這個(gè)消息中間件,我們又可以分成兩個(gè)概念來理解它,一個(gè)消息,一個(gè)中間件。

咱么先來看下什么是消息,在互聯(lián)網(wǎng)的系統(tǒng)中,所謂消息,就是系統(tǒng)與系統(tǒng)通信所傳遞的信息,就好比我們?nèi)伺c人之間交流,也是要通過語言來傳遞的信息的,這個(gè)信息就可以類比成系統(tǒng)的中消息。

中間件的概念呢,其實(shí)就是底層操作系統(tǒng)軟件,非業(yè)務(wù)應(yīng)用軟件,不是直接給最終用戶使用的,不能直接給客戶帶來價(jià)值的軟件統(tǒng)稱為中間件,說人話就是,處在一個(gè)非核心的位置,有它沒它都行,并不影響系統(tǒng)正常運(yùn)行,它在兩個(gè)系統(tǒng)中相當(dāng)于一個(gè)橋梁的作用。



知道了消息是啥,中間件是啥,那么下一個(gè)問題,什么是消息中間件。學(xué)英語的時(shí)候,大家經(jīng)常說,每個(gè)字母都認(rèn)識(shí),字母組合在一起就不認(rèn)識(shí)了,如果把消息和中間件組合在一起估計(jì)你也不認(rèn)識(shí)了。

消息中間件就是利用高效可靠的消息傳遞機(jī)制進(jìn)行異步的數(shù)據(jù)傳輸,并基于數(shù)據(jù)通信進(jìn)行分布式系統(tǒng)的集成。通過提供消息隊(duì)列模型和消息傳遞機(jī)制,可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。

在互聯(lián)網(wǎng)行業(yè),消息中間件已經(jīng)是大型分布式系統(tǒng)中不可或缺的重要組件??此坪唵?,卻解決了不少難題。比如分布式系統(tǒng)中的異步處理、系統(tǒng)耦合、流量削鋒、分布式事務(wù)管理等。輕松實(shí)現(xiàn)了一個(gè)高性能,高可用,高擴(kuò)展的系統(tǒng)。

今天咱么就來見識(shí)見識(shí),幾種主流的消息中間件技術(shù)。


常見的消息中間件

當(dāng)今市面上有很多主流的消息中間件,比如:資歷比較老的ActiveMQ,比較火的RabbitMQ,以及現(xiàn)在當(dāng)紅小生Kafka,還有自帶光環(huán)RocketMQ(阿里巴巴開源),以及退居二線的ZeroM、MetaMQ等。

消息中間件的種類的還是非常豐富的,但是目前比較主流的當(dāng)屬Kafka、RabbitMQ了,接下來我們就對(duì)幾個(gè)主流的中間件做一個(gè)簡單的介紹。


RabbitMQ

RabbitMQ在2007年發(fā)布,是一個(gè)在AMQP(高級(jí)消息隊(duì)列協(xié)議)基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng),是當(dāng)前最主流的消息中間件之一,支持多種客戶端,如:Python、Java等,。用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。


Kafka

Kafka是一個(gè)分布式消息發(fā)布訂閱系統(tǒng)。它最初由LinkedIn公司基于獨(dú)特的設(shè)計(jì)實(shí)現(xiàn)為一個(gè)分布式的提交日志系統(tǒng),之后成為Apache項(xiàng)目的一部分;它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)(網(wǎng)頁瀏覽,搜索和其他用戶的行動(dòng)),在大數(shù)據(jù)時(shí)代的今天,這是非常重要的一部分?jǐn)?shù)據(jù)。Kafka高吞吐量的特性,使他同樣在大數(shù)據(jù)領(lǐng)域備受歡迎。


ActiveMQ

ActiveMQ是Apache出品,最流行的,能力強(qiáng)勁的開源消息總線。ActiveMQ的設(shè)計(jì)目標(biāo)是提供標(biāo)準(zhǔn)的,面向消息的,能夠跨越多語言和多系統(tǒng)的應(yīng)用集成消息通信中間件。它為企業(yè)消息傳遞提供高可用,出色性能,可擴(kuò)展,穩(wěn)定和安全保障。


RocketMQ

RocketMQ源自阿里,純國產(chǎn)件,純Java開發(fā),具有高吞吐量、高可用性、適合大規(guī)模分布式系統(tǒng)應(yīng)用的特點(diǎn)。據(jù)說RocketMQ在設(shè)計(jì)時(shí)參考了Kafka,但并不是簡單的復(fù)制,它對(duì)消息的可靠傳輸及事務(wù)性做了優(yōu)化,目前在阿里集團(tuán)被廣泛應(yīng)用支撐了阿里多次雙十一活動(dòng),可以說是經(jīng)歷過大考的中間件。


沒有比較就沒有傷害

上面咱么介紹了四種比較常用的中間件技術(shù),但是在具體的工作我們還是需要選擇其中的一種,如下圖中,所體現(xiàn)的特性;就可以作為選擇的一個(gè)參考。



如何選擇

通常在我們選擇中間件產(chǎn)品的時(shí)候;除了,從技術(shù)本身考慮之外,我們都會(huì)從兩個(gè)方面進(jìn)行考慮,一個(gè)是從公司基礎(chǔ)實(shí)力,一個(gè)是業(yè)務(wù)場景。


公司實(shí)力

如果是中小型軟件公司,一般多選擇RabbitMQ,它管理界面用起來十分方便。而且RabbitMQ的社區(qū)十分活躍,如果實(shí)際開發(fā)中遇到什么問題,都可以從社區(qū)找到幫助,這點(diǎn)對(duì)于中小型公司來說十分重要,因?yàn)橹行」?,技術(shù)水平比較薄弱;這也說明RabbitMQ是一個(gè)非常成熟的技術(shù)。

如果是大型軟件公司,根據(jù)具體使用在RocketMQ和kafka之間二選一。一方面,大型軟件公司,具備足夠的資金搭建分布式環(huán)境,也具備足夠大的數(shù)據(jù)量。而且還可以針對(duì)RocketMQ進(jìn)行定制化開發(fā)。


業(yè)務(wù)場景

RocketMQ定位于非日志的可靠消息傳輸(日志場景也OK),目前RocketMQ在阿里集團(tuán)被廣泛應(yīng)用在訂單,交易,充值,流計(jì)算,消息推送,日志流式處理,binglog分發(fā)等場景。

Kafka主要特點(diǎn)是追求高吞吐量,如果一開始的目的就是用于日志收集和傳輸。適合于產(chǎn)生大量數(shù)據(jù)的互聯(lián)網(wǎng)服務(wù)的數(shù)據(jù)收集業(yè)務(wù)。

RabbitMQ基于AMQP協(xié)議來實(shí)現(xiàn),AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對(duì)點(diǎn)和發(fā)布/訂閱)、可靠性、安全;所以,對(duì)數(shù)據(jù)一致性、穩(wěn)定性和可靠性要求很高的場景建議選擇RabbitMQ。

其實(shí)更多是時(shí)候,是基于以上兩種情況來進(jìn)行綜合考慮的,既要考慮的成本,又要考慮業(yè)務(wù)需求。


標(biāo)簽: 中間件
熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營班 爆滿開班
報(bào)名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接