RabbitMQ 是傳統(tǒng)消息隊(duì)列,Kafka 是分布式流處理平臺(tái);RabbitMQ 適合業(yè)務(wù)消息,Kafka 適合高吞吐日志 / 數(shù)據(jù)流。
RabbitMQ:老牌、可靠、靈活,業(yè)務(wù)消息首選
Kafka:超高吞吐、順序?qū)?、可回放,大?shù)據(jù) / 日志 / 流處理首選
RocketMQ:國(guó)產(chǎn),高可靠高吞吐,電商秒殺、金融常用
(1)RabbitMQ
協(xié)議:AMQP
架構(gòu):交換機(jī) + 隊(duì)列,路由極強(qiáng)(direct/topic/fanout/headers)
特點(diǎn):
消息可靠,不丟
延遲隊(duì)列、死信隊(duì)列、優(yōu)先級(jí)隊(duì)列非常成熟
適合業(yè)務(wù)系統(tǒng)解耦、異步、通知
缺點(diǎn):
吞吐不如 Kafka
集群不如 Kafka 天然分布式
適用場(chǎng)景:訂單、支付、物流、郵件、異步任務(wù)
(2)Kafka
架構(gòu):主題 + 分區(qū) + 副本
特點(diǎn):
極高吞吐(幾十萬(wàn) TPS)
順序?qū)懘疟P,極快
消息可重復(fù)消費(fèi)、回溯消費(fèi)
天然分布式、易擴(kuò)容
缺點(diǎn):
路由功能弱
實(shí)時(shí)性稍差一點(diǎn)
不適合靈活的業(yè)務(wù)路由
適用場(chǎng)景:日志收集、用戶行為埋點(diǎn)、大數(shù)據(jù)同步、流計(jì)算
(3)RocketMQ(阿里)
架構(gòu)類似 Kafka,但更偏向業(yè)務(wù)
特點(diǎn):
吞吐高
事務(wù)消息強(qiáng)
延遲隊(duì)列、重試隊(duì)列非常好用
適用場(chǎng)景:電商、金融、秒殺、高可靠業(yè)務(wù)
國(guó)內(nèi)互聯(lián)網(wǎng)公司用得非常多。
選型差異

模式差異

事務(wù)對(duì)比
