kafka vs rabbitmq的简单总结

差异点简述

 
编写语言不同,kafka消息是消费者拉取,rabbitmq可推可拉
 

1.kafka优势:

  • 吞吐量更大上限更高
  • 保证消息顺序化消费更强,生产线消息幂等性的支持
  • 更能支持多消费者情况,一份数据不会像rabbit生成多份
  • 支持消息回溯
  • 流控管理支持生产与消费端

2.rabbitmq优势:

一些功能更多,支持死信队列延迟队列,
 
支持消息的筛选匹配处理
 
 

二、具体使用上特点的区分

消息的顺序

kafka生产消费按分区来保持顺序,支持多线程消费的顺序性,rabbitmq多线程消费时候某个线程消费报错的话顺序会有问题
 
而多消费者消费广播模式情况下rabbit问题:
 
  1. 为了实现发布订阅功能,从而使用的消息复制,会降低性能并耗费更多资源
  2. 多个消费者无法严格保证消息顺序
  3. 大量的订单集中在一个队列,吞吐量受到了限制

消息的匹配

kafka需要自己来实现消息匹配筛选,rabbit有exchage天然支持消息匹配
 

消息的延迟处理

kafka消费者要自己实现延迟处理,rabbitmq3.5.8之前可以放到延迟队列处理,但是还是保持先进先出,之后的版本有exchage处理可以到期之后再塞到队列里面
 

消息的保持

kafka消费完消息也会一直存在就是offset的变化,rabbitmq消费完消息就删除了
 

消息的错误处理

kafka消费者消费报错后其他消费者也不能继续消费,rabbitmq会把消息塞回队列重新消费或者进入死信队列
 
 

消息的吞吐量

rabbitmq每秒几万条的话kafka达到每秒几十万条,差距10倍上下
 
posted on 2025-07-02 15:29  paulgeo  阅读(13)  评论(0)    收藏  举报