| | | | |
| 萬(wàn)級(jí),吞吐量比RocketMQ和Kafka要低了一個(gè)數(shù)量級(jí) | 萬(wàn)級(jí),吞吐量比RocketMQ和Kafka要低了一個(gè)數(shù)量級(jí) | 10萬(wàn)級(jí),RocketMQ也是可以支撐高吞吐的一種MQ | 10萬(wàn)級(jí)別,這是kafka最大的優(yōu)點(diǎn),就是吞吐量高。一般配合大數(shù)據(jù)類的系統(tǒng)來(lái)進(jìn)行實(shí)時(shí)數(shù)據(jù)計(jì)算、日志采集等場(chǎng)景 |
|
|
| topic可以達(dá)到幾百,幾千個(gè)的級(jí)別,吞吐量會(huì)有較小幅度的下降這是RocketMQ的一大優(yōu)勢(shì),在同等機(jī)器下,可以支撐大量的topic | topic從幾十個(gè)到幾百個(gè)的時(shí)候,吞吐量會(huì)大幅度下降所以在同等機(jī)器下,kafka盡量保證topic數(shù)量不要過(guò)多。如果要支撐大規(guī)模topic,需要增加更多的機(jī)器資源 |
| | 微秒級(jí),這是rabbitmq的一大特點(diǎn),延遲是最低的 | | |
| 高,基于主從架構(gòu)實(shí)現(xiàn)高可用性 | 高,基于主從架構(gòu)實(shí)現(xiàn)高可用性 | | 非常高,kafka是分布式的,一個(gè)數(shù)據(jù)多個(gè)副本,少數(shù)機(jī)器宕機(jī),不會(huì)丟失數(shù)據(jù),不會(huì)導(dǎo)致不可用 |
| |
| 經(jīng)過(guò)參數(shù)優(yōu)化配置,可以做到0丟失 | 經(jīng)過(guò)參數(shù)優(yōu)化配置,消息可以做到0丟失 |
| | 基于erlang開發(fā),所以并發(fā)能力很強(qiáng),性能極其好,延時(shí)很低 | MQ功能較為完善,還是分布式的,擴(kuò)展性好 | 功能較為簡(jiǎn)單,主要支持簡(jiǎn)單的MQ功能,在大數(shù)據(jù)領(lǐng)域的實(shí)時(shí)計(jì)算以及日志采集被大規(guī)模使用,是事實(shí)上的標(biāo)準(zhǔn) |
| 非常成熟,功能強(qiáng)大,在業(yè)內(nèi)大量的公司以及項(xiàng)目中都有應(yīng)用而且現(xiàn)在社區(qū)以及國(guó)內(nèi)應(yīng)用都越來(lái)越少,官方社區(qū)現(xiàn)在對(duì)ActiveMQ 5.x維護(hù)越來(lái)越少,幾個(gè)月才發(fā)布一個(gè)版本而且確實(shí)主要是基于解耦和異步來(lái)用的,較少在大規(guī)模吞吐的場(chǎng)景中使用 | erlang語(yǔ)言開發(fā),性能極其好,延時(shí)很低;而且開源提供的管理界面非常棒,用起來(lái)很好用社區(qū)相對(duì)比較活躍,幾乎每個(gè)月都發(fā)布幾個(gè)版本分在國(guó)內(nèi)一些互聯(lián)網(wǎng)公司近幾年用rabbitmq也比較多一些但是問(wèn)題也是顯而易見的,RabbitMQ確實(shí)吞吐量會(huì)低一些,這是因?yàn)樗龅膶?shí)現(xiàn)機(jī)制比較重。而且erlang開發(fā),國(guó)內(nèi)有幾個(gè)公司有實(shí)力做erlang源碼級(jí)別的研究和定制?如果說(shuō)你沒(méi)這個(gè)實(shí)力的話,確實(shí)偶爾會(huì)有一些問(wèn)題,你很難去看懂源碼,你公司對(duì)這個(gè)東西的掌控很弱,基本職能依賴于開源社區(qū)的快速維護(hù)和修復(fù)bug。而且rabbitmq集群動(dòng)態(tài)擴(kuò)展會(huì)很麻煩,不過(guò)這個(gè)我覺(jué)得還好。其實(shí)主要是erlang語(yǔ)言本身帶來(lái)的問(wèn)題。很難讀源碼,很難定制和掌控。 | 接口簡(jiǎn)單易用,而且畢竟在阿里大規(guī)模應(yīng)用過(guò),有阿里品牌保障日處理消息上百億之多,可以做到大規(guī)模吞吐,性能也非常好,分布式擴(kuò)展也很方便,社區(qū)維護(hù)還可以,可靠性和可用性都是ok的,還可以支撐大規(guī)模的topic數(shù)量,支持復(fù)雜MQ業(yè)務(wù)場(chǎng)景而且一個(gè)很大的優(yōu)勢(shì)在于,阿里出品都是java系的,我們可以自己閱讀源碼,定制自己公司的MQ,可以掌控社區(qū)活躍度相對(duì)較為一般,不過(guò)也還可以,文檔相對(duì)來(lái)說(shuō)簡(jiǎn)單一些,然后接口這塊不是按照標(biāo)準(zhǔn)JMS規(guī)范走的有些系統(tǒng)要遷移需要修改大量代碼還有就是阿里出臺(tái)的技術(shù),你得做好這個(gè)技術(shù)萬(wàn)一被拋棄,社區(qū)黃掉的風(fēng)險(xiǎn),那如果你們公司有技術(shù)實(shí)力我覺(jué)得用RocketMQ挺好的 | kafka的特點(diǎn)其實(shí)很明顯,就是僅僅提供較少的核心功能,但是提供超高的吞吐量,ms級(jí)的延遲,極高的可用性以及可靠性,而且分布式可以任意擴(kuò)展同時(shí)kafka最好是支撐較少的topic數(shù)量即可,保證其超高吞吐量而且kafka唯一的一點(diǎn)劣勢(shì)是有可能消息重復(fù)消費(fèi),那么對(duì)數(shù)據(jù)準(zhǔn)確性會(huì)造成極其輕微的影響,在大數(shù)據(jù)領(lǐng)域中以及日志采集中,這點(diǎn)輕微影響可以忽略這個(gè)特性天然適合大數(shù)據(jù)實(shí)時(shí)計(jì)算以及日志收集 |