【技术选型】ActiveMQ、RocketMQ、RabbitMQ、Kafka对比

这篇具有很好参考价值的文章主要介绍了【技术选型】ActiveMQ、RocketMQ、RabbitMQ、Kafka对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

MQ(Message Queue),即消息队列。早已成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的MQ,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

几种MQ的对比

下面我们先看下主流的几种MQ的对比,如下表格:文章来源地址https://www.toymoban.com/news/detail-636872.html

比较项 ActiveMQ RabbitMQ RocketMQ Kafka
所属社区/公司 Apache Mozilla Public License 阿里巴巴 Apache
成熟度及授权 成熟/开源 成熟/开源 比较成熟/开源 成熟/开源
开发语言 java Erlang java Scala&java
客户端支持语言 Java、C/C++、Python、PHP、Perl、.net等 官方支持Erlang,java,Ruby等,社区产出多种语言API,几乎支持所有常用语言 Java、C++ 官方支持java,开源社区有多语言版本,如PHP,Python,Go,C/C++,Ruby等
协议支持 OpenWire、STOMP、REST、XMPP、AMQP 多协议支持:AMQP,XMPP,SMTP,STOMP 自己定义的一套(社区提供JMS–不成熟) 自有协议,社区封装了HTTP协议支持
HA 基于ZooKeeper + LevelDB的Master-Slave实现方式 master/slave模式,master提供服务,slave仅作备份(冷备) 支持多Master模式,多Master多Slave模式,异步复制模式、同步双写 支持replica机制,leader宕掉后,备份自动顶替,并重新选举leader(基于Zookeeper)
数据可靠性 Master/slave,有较低的概率丢失数据 可以保证数据不丢,有slave用作备份 支持异步实时刷盘,同步刷盘,同步复制,异步复制 数据可靠,且有replica机制,有容错容灾能力
单机吞吐量 万级 万级 十万级,支撑高吞吐 十万级,高吞吐,一般配合大数据类的系统进行实时数据计算、日志采集等场景
消息延迟 毫秒级 微秒级 毫秒级 毫秒级以内
流量控制 基于Credit-Based算法,是内部被动触发的保护机制,作用于生产者层面。 支持client和user级别,通过主动设置可将流控作用于生产者或消费者。
持久化能力 默认内存,正常关闭时将内存中未处理的消息持久化文件,如果使用JDBC策略,则入数据库 内存、文件,支持数据堆积。但堆积反过来影响吞吐量 磁盘文件 磁盘文件。只要磁盘容量够,可以做到无限消息堆积
负载均衡 支持 支持 支持 支持
管理界面 一般 较好 命令行界面 官方只提供命令行版,yahoo开源自己的web管理界面
部署方式及难易 独立/容易 独立/容易 独立/容易 独立/容易
功能支持 MQ领域的功能较为完备 基于Erlang开发,并发能力很强,性能极好,时延很低 MQ功能较为完善,还是分布式的,扩展性好 功能较为简单,主要支持简单的MQ功能,在大数据领域的实时计算以及日志采集方面被大规模使用

综合以上对比后,有如下建议:

  • 通常早期大家都使用ActiveMQ,现在使用的不多,毕竟没有经历过大规模吞吐量场景的验证,并且目前社区也不够活跃,不推荐使用。
  • 而RoceketMQ来自阿里出品,目前有越来越多的公司尝试使用,反映确实不错。但社区活跃度不高,那些对自身公司技术实力信心满满的可以考虑。
  • 而Kafka名声在外,之前在一家国产数据库公司时,当时的总架就讲解、推荐过。但目前来看,大数据领域的实时计算、日志采集等场景,kafka是业内标准,社区活跃度极高。有这方面的需求的,可以优先考虑。
  • 最后对于RabbitMQ,无论从软件成熟度,社区活跃度(最新的release版是2019年12月的),还是基本的吞吐能力,以及低时延,界面管理等方面,对于技术实力一般,技术挑战不是很高的公司,可以考虑。RabbitMQ是个不错的选择。
  • 最后,没有完美的产品,只有合适的软件。技术选型毕竟还是要满足业务需求的,满足功能即可。

到了这里,关于【技术选型】ActiveMQ、RocketMQ、RabbitMQ、Kafka对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

    消息的发送方:生产者 消息的接收方:消费者 同步消息:发送方发送消息到接收方,接收方有所回应后才能够进行下一次的消息发送 异步消息:不需要接收方回应就可以进行下一步的发送 什么是消息队列? 当此时有很多个用户同时访问服务器,需要服务器进行操作,但此

    2024年04月27日
    浏览(52)
  • 消息中间件(RocketMQ、RabbitMQ、ActiveMQ、Redis、kafka、ZeroMQ)以及之间的区别

    目录 一、什么是消息中间件 二、消息中间件的组成 1、Broker 2、Producer 3、Consumer 4、Topic 5、Queue 6、Message 三、消息中间件通信模式 1、点对点(kafka不支持这种模式)  2、发布/订阅  四、消息中间件的作用 1、系统解耦 2、提高系统响应时间 3、为大数据处理架构提供服务 五、

    2024年01月25日
    浏览(53)
  • 消息队列之六脉神剑:RabbitMQ、Kafka、ActiveMQ 、Redis、 ZeroMQ、Apache Pulsar对比和如何使用

    消息队列(Message Queue)是一种异步通信机制,它将消息发送者和接收者解耦,从而提高了应用程序的性能、可扩展性和可靠性。在分布式系统中,消息队列经常被用于处理高并发、异步处理、应用解耦等场景。 本篇回答将分析比较常见的六种消息队列:RabbitMQ、Kafka、Active

    2024年02月14日
    浏览(46)
  • ActiveMQ、RabbitMQ、RocketMQ、Kafka介绍

    一、消息中间件的使用场景   消息中间件的使用场景总结就是六个字:解耦、异步、削峰   1.解耦 如果我方系统A要与三方B系统进行数据对接,推送系统人员信息,通常我们会使用接口开发来进行。但是如果运维期间B系统进行了调整,或者推送过程中B系统网络进行了调整,

    2024年02月05日
    浏览(49)
  • 【消息队列技术 RabbitMQ 和 Apache Kafka对比】

    消息队列技术有 RabbitMQ 和 Apache Kafka 是一个开源的消息队列实现,它采用 AMQP(高级消息队列协议)作为通信协议。RabbitMQ 的特点是可靠性高、扩展性好、功能丰富。它支持基于消息的异步通信模式,发布-订阅模式和消息分发模式,可以在不同的应用之间传递消息。RabbitMQ 在

    2024年03月10日
    浏览(43)
  • 了解ActiveMQ、RabbitMQ、RocketMQ和Kafka的特点

    ActiveMQ是一种基于JMS(Java消息服务)规范的消息中间件,由Apache基金会开发和维护 核心组件和特点: Broker(代理):ActiveMQ的核心组件是Broker,它负责接收、存储和路由消息,可以配置为单个实例或者集群,提供高可用性和可扩展性。 Producer(生产者)和Consumer(消费者):

    2024年02月07日
    浏览(41)
  • mq 消息队列 mqtt emqx ActiveMQ RabbitMQ RocketMQ

    十几年前,淘宝的notify,借鉴ActiveMQ。京东的ActiveMQ集群几百台,后面改成JMQ。 Linkedin的kafka,因为是scala,国内很多人不熟。淘宝的人把kafka用java写了一遍,取名metaq,后来再改名RocketMQ。 总的来说,三大原因,语言、潮流、生态。 MQ这种东西,当你的消息量不大的时候,用啥

    2024年02月12日
    浏览(53)
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

    特性 ActiveMQ RabbitMQ RocketMQ Kafka 开发语言 java erlang java scala 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景 topic 数量对吞吐量的影响 topic 可以达到几百/几千的级

    2024年01月19日
    浏览(46)
  • Kafka、ActiveMQ、RabbitMQ和RocketMQ都有哪些区别?

    Kafka、ActiveMQ、RabbitMQ和RocketMQ都是常见的消息中间件,它们都提供了高性能、高可用、可扩展的消息传递机制,但它们之间也有以下一些区别: 1、消息传递模型:Kafka主要支持发布-订阅模型,ActiveMQ、RabbitMQ和RocketMQ则同时支持点对点和发布-订阅两种模型。 2、性能和吞吐量:

    2024年04月11日
    浏览(37)
  • 深度解析:Kafka、ActiveMQ、RabbitMQ、RocketMQ的区别与比较

    目录 引言 1. Kafka 1.1 架构设计 1.2 特点与优势 2. ActiveMQ 2.1 架构设计 2.2 特点与优势 3. RabbitMQ 3.1 架构设计 3.2 特点与优势 4. RocketMQ 4.1 架构设计 4.2 特点与优势 5. 总结比较 5.1 使用场景 5.2 生态系统 5.3 性能比较 结语 消息队列是分布式系统中不可或缺的组件,而在消息队列的选

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包