本文已参与「新人创作礼」活动,一起开启掘金创作之路。
标题: kafka和rabbitmq的区别 日期: 2022-01-16 13:54:22 标签: [kafka, rabbitmq, 消息队列] 分类: 消息队列
说说我们在数据领域用的比较多的消息队列组件:kafka和rabbitmq。
为什么要用消息队列?
- 解耦
- 异步
- 削峰
作为消息处理中间件,这2个有什么特性,及优缺点是什么,使用场景是怎样的?我们下面来对比下。
| 对比项 | kafka | rabbitmq |
|---|---|---|
| 实现语言 | java/scala | erlang |
| 开发者 | linkedin开源给apache | |
| 特点 | 消息拼接到日志文件;吞吐量大;数据准确性相对低;整体kafka消息过期时间设置 | 吞吐量相对小;数据准确性高;消息过滤;单条消息TTL过期时间 |
| 缺点 | 数据不准确:丢失或者重复;消息乱序:多个分区时,消费乱序了 | 吞吐量低 |
看看各自的应用场景:
- 通常会使用kafka作为消息传输的数据管道,rabbitmq作为交易数据的传输管道,主要考虑的因素则是是否存在丢失数据或者数据重复的可能;
- rabbitmq在金融场景中经常使用,具有更高的严谨性,数据丢失的可能性更小,同时具备更高的实时性,而kafka主要体现在吞吐量上,虽然可以通过策略实现数据不丢失,但从严谨角度上看,不如rabbitmq,而且kafka保证每条消息最少送达一次,有较小概率出现数据重复,需要在下游段进行数据重复的校验。
后面我会接着介绍关于大数据各个组件及它们之间的关系和使用场景,给大数据的同行们一些扩展的知识,帮助大家更好地了解它们,使用它们。
好了,我是Lee,每天进步一点点。
Keep reading, Keep writing, Keep coding.
一起学习,一起进步。