多方面资料整理而来
rabbmq基于erlang语言开发,并发能力强,性能好 延迟低。功能比较完备而且开 源提供的管理界面非常棒。但是在吞吐量不及kafka。 kafka优势就是高吞吐,功能较为简单,主要支持简单的 MQ功能,在大数据领域的实时计算以及日志采集被大规模使用。唯一劣势就是有可能消息重复消费,对数据的准确性造成影响。
调研了公司的各项目的mq选择,选取rabbitmq与kafka
设计语言的区别: RabbitMQ是采用Erlang语言实现的消息中间件 kafka是采用Scala语言开发高吞吐量的分布式发布订阅消息系统
需要的功能各个维度来做对比:
优先级队列(优先级高的消息具备优先被消费的特权)
延迟队列(延迟消费)
消费模式(消息的推模式和拉模式,推模式是指由Broker主动推送消息至消费端。拉模式是指消费端主动向Broker端请求拉取)
消息回溯(指消息在消费完成之后,还能消费到之前被消费掉的消息)
持久化
消息追踪(知道消息从哪来,存在哪里以及发往哪里去)
多租户(确保各用户间数据的隔离性)
跨语言支持
安全机制(身份认证和权限控制)
消息确认
Kafka不支持优先级队列,不支持延迟队列。只有拉模式,支持消息回溯(按照offset和timestamp两种维度进行消息回溯。),支持持久化不支持消息追踪,支持多租户,跨语言支持,支持安全机制,支持消息确认。
rabbitmq支持优先级队列,支持延迟队列(通过DLX与TTL 实现延迟队列的功能。)。推模式+拉模式,不支持消息回溯,,支持持久化,支持消息追踪(插件实现),支持多租户,跨语言支持,支持安全机制,支持消息确认
- 本文标题: rabbitmq与kafka对比
- 文章作者: sherryriver(木木三可)
- 发布时间: 2019.03.25
- 本文链接: https://sherryriver.github.io/2019/03/25/rabbitmq与kafka对比/
- 许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。