我是靠谱客的博主 感动芝麻,最近开发中收集的这篇文章主要介绍kafka和rabbitmq对比(超详细,从实战维度比较)kafka介绍rabbitmq介绍kafka和rabbitmq全面对比分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

kafka介绍

kafka是apache开源的消息队列顶级项目之一,在大数据场景下使用较多,由linkedin开源,目前社区活跃,全球较多组织开始使用kafka来进行数据交换。

rabbitmq介绍

RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。

kafka和rabbitmq全面对比分析

对比项kafkarabbitmq
开发语言scala,Javaerlang
是否支持多租户2.x.x支持多租户支持多租户
是否支持topic优先级不支持支持
是否支持消息全局有序不支持支持
是否支持消息分区有序支持支持
是否内置监控无内置监控内置监控
是否支持多个生产者一个topic支持多个生产者
是否支持多个消费者一个topic支持多个消费者(一个消费者可消费多个分区,一个分区可被多个消费组消费,但同一消费组内仅能有一个消费者同时消费1个分区)
是否支持一个分区多个消费者不支持不支持
是否支持JMX支持不支持(非java语言编写)
是否支持加密支持支持
消息队列协议支持仅支持自定义协议支持AMQP、MQTT、STOMP协议
客户端语言支持支持多语言客户端支持多语言客户端
是否支持消息追踪不支持消息追踪支持消息追踪
是否支持消费者推模式不支持消费者推模式支持消费者推模式
是否支持消费者拉模式支持消费者拉模式支持消费者拉模式
是否支持广播消息支持广播消息支持广播消息
是否支持消息回溯支持消息回溯,因为消息持久化,消息被消费后会记录offset和timstamp不支持,消息确认被消费后,会被删除
是否支持消息数据持久化支持消息数据持久支持消息数据持久
是否支持消息堆积支持消息堆积,并批量持久化到磁盘支持阈值内的消息对接,无法支持较大的消息堆积
是否支持流量控制支持控制用户和客户端流量支持生产者的流量控制
是否支持事务性消息支持不支持
元数据管理通过zookeeper进行管理支持消息数据持久
默认服务端口90925672
默认监控端口kafka web console 9000;kafka manager 9000;15672
网络开销相对较小相对较大
内存消耗相对较小相对较大
cpu消耗相对较大相对较小

实际场景选择

在实际生产应用中,通常会使用kafka作为消息传输的数据管道,rabbitmq作为交易数据作为数据传输管道,主要的取舍因素则是是否存在丢数据的可能;rabbitmq在金融场景中经常使用,具有较高的严谨性,数据丢失的可能性更小,同事具备更高的实时性;而kafka优势主要体现在吞吐量上,虽然可以通过策略实现数据不丢失,但从严谨性角度来讲,大不如rabbitmq;而且由于kafka保证每条消息最少送达一次,有较小的概率会出现数据重复发送的情况;

最后

以上就是感动芝麻为你收集整理的kafka和rabbitmq对比(超详细,从实战维度比较)kafka介绍rabbitmq介绍kafka和rabbitmq全面对比分析的全部内容,希望文章能够帮你解决kafka和rabbitmq对比(超详细,从实战维度比较)kafka介绍rabbitmq介绍kafka和rabbitmq全面对比分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部