RabbitMQ和Kafka到底怎么選?
300本計(jì)算機(jī)編程的經(jīng)典書(shū)籍下載
AI全套:Python3+TensorFlow打造人臉識(shí)別智能小程序
最新人工智能資料-Google工程師親授 Tensorflow-入門(mén)到進(jìn)階
黑馬頭條項(xiàng)目 - Java Springboot2.0(視頻、資料、代碼和講義)14天完整版
來(lái)源:cnblogs.com/haolujun/p/9632835.html
前言
RabbitMQ架構(gòu)
RabbitMQ是一個(gè)分布式系統(tǒng),這里面有幾個(gè)抽象概念。
broker:每個(gè)節(jié)點(diǎn)運(yùn)行的服務(wù)程序,功能為維護(hù)該節(jié)點(diǎn)的隊(duì)列的增刪以及轉(zhuǎn)發(fā)隊(duì)列操作請(qǐng)求。 master queue:每個(gè)隊(duì)列都分為一個(gè)主隊(duì)列和若干個(gè)鏡像隊(duì)列。

隊(duì)列消費(fèi)

隊(duì)列生產(chǎn)

所以,到這里小伙伴們就可以看到 RabbitMQ的不足:由于master queue單節(jié)點(diǎn),導(dǎo)致性能瓶頸,吞吐量受限。雖然為了提高性能,內(nèi)部使用了Erlang這個(gè)語(yǔ)言實(shí)現(xiàn),但是終究擺脫不了架構(gòu)設(shè)計(jì)上的致命缺陷。
Kafka
另外,關(guān)注互聯(lián)網(wǎng)架構(gòu)師公眾號(hào),回復(fù)“面試”,送你一份面試題寶典!


總結(jié)
本文只做了Kafka和RabbitMQ的對(duì)比,但是開(kāi)源隊(duì)列豈止這兩個(gè),ZeroMQ,RocketMQ,JMQ等等,時(shí)間有限也就沒(méi)有細(xì)看,故不在本文比較范圍之內(nèi)。
所以,別再被這些五花八門(mén)的隊(duì)列迷惑了,從架構(gòu)上找出關(guān)鍵差別,并結(jié)合自己的實(shí)際需求(比如本文就只單單從吞吐量一個(gè)需求來(lái)考察)輕輕松松搞定選型。最后總結(jié)如下:
吞吐量較低:Kafka和RabbitMQ都可以。 吞吐量高:Kafka。
本文內(nèi)容參考自RabbitMQ和KafKa官方文檔,所以真要搞懂一個(gè)中間件的原理最好去看官方文檔,文檔里面有詳細(xì)的設(shè)計(jì)方案,我們可以自己進(jìn)行設(shè)計(jì)方案的對(duì)比,從而找出符合自己實(shí)際情況的中間件。
全棧架構(gòu)社區(qū)交流群
?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進(jìn)行加群。歡迎有想法、樂(lè)于分享的朋友們一起交流學(xué)習(xí)。
看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人
往期資源:
2019最新Python視頻:從入門(mén)到Swiper項(xiàng)目實(shí)戰(zhàn)
2019年Android應(yīng)用程序開(kāi)發(fā)
2019重磅高級(jí)資源:Java并發(fā)編程原理和實(shí)戰(zhàn)
最新黑馬大數(shù)據(jù)資源:深入解析docker容器化技術(shù)
最新Java后端實(shí)戰(zhàn)視頻:SSM框架在線商城系統(tǒng)
2019最新黑客技術(shù)之Windows網(wǎng)絡(luò)安全精講
