标题: kafka和rabbitmq的区别
日期: 2022-01-16 13:54:22
标签: [kafka, rabbitmq, 消息队列]
分类: 消息队列
说说我们在数据领域用的比较多的消息队列组件:kafka和rabbitmq。
为什么要用消息队列?
- 解耦
- 异步
- 削峰
作为消息处理中间件,这2个有什么特性,及优缺点是什么,使用场景是怎样的?我们下面来对比下。
对比项 | kafka | rabbitmq |
---|---|---|
实现语言 | java/scala | erlang |
开发者 | linkedin开源给apache | |
特点 | 消息拼接到日志文件;吞吐量大;数据准确性相对低;整体kafka消息过期时间设置 | 吞吐量相对小;数据准确性高;消息过滤;单条消息TTL过期时间 |
缺点 | 数据不准确:丢失或者重复;消息乱序:多个分区时,消费乱序了 | 吞吐量低 |
看看各自的应用场景:
1.通常会使用kafka作为消息传输的数据管道,rabbitmq作为交易数据的传输管道,主要考虑的因素则是是否存在丢失数据或者数据重复的可能;
2.rabbitmq在金融场景中经常使用,具有更高的严谨性,数据丢失的可能性更小,同时具备更高的实时性,而kafka主要体现在吞吐量上,虽然可以通过策略实现数据不丢失,但从严谨角度上看,不如rabbitmq,而且kafka保证每条消息最少送达一次,有较小概率出现数据重复,需要在下游段进行数据重复的校验。
Keep reading, Keep writing, Keep coding.
欢迎关注我的微信公众号,比较喜欢分享知识,也喜欢宠物,所以做了这2个公众号:
喜欢宠物的朋友可以关注:【电巴克宠物Pets】
一起学习,一起进步。
版权声明:本文为chenzuoli原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。