kafka vs rabbitmq的简单总结
差异点简述
编写语言不同,kafka消息是消费者拉取,rabbitmq可推可拉
1.kafka优势:
-
吞吐量更大上限更高
-
保证消息顺序化消费更强,生产线消息幂等性的支持
-
更能支持多消费者情况,一份数据不会像rabbit生成多份
-
支持消息回溯
-
流控管理支持生产与消费端
2.rabbitmq优势:
一些功能更多,支持死信队列延迟队列,
支持消息的筛选匹配处理
二、具体使用上特点的区分
消息的顺序
kafka生产消费按分区来保持顺序,支持多线程消费的顺序性,rabbitmq多线程消费时候某个线程消费报错的话顺序会有问题
而多消费者消费广播模式情况下rabbit问题:
-
为了实现发布订阅功能,从而使用的消息复制,会降低性能并耗费更多资源
-
多个消费者无法严格保证消息顺序
-
大量的订单集中在一个队列,吞吐量受到了限制
消息的匹配
kafka需要自己来实现消息匹配筛选,rabbit有exchage天然支持消息匹配
消息的延迟处理
kafka消费者要自己实现延迟处理,rabbitmq3.5.8之前可以放到延迟队列处理,但是还是保持先进先出,之后的版本有exchage处理可以到期之后再塞到队列里面
消息的保持
kafka消费完消息也会一直存在就是offset的变化,rabbitmq消费完消息就删除了
消息的错误处理
kafka消费者消费报错后其他消费者也不能继续消费,rabbitmq会把消息塞回队列重新消费或者进入死信队列
消息的吞吐量
rabbitmq每秒几万条的话kafka达到每秒几十万条,差距10倍上下
浙公网安备 33010602011771号