【技术选型】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)

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

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

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

    消息中间件(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日
    浏览(10)
  • 消息队列之六脉神剑:RabbitMQ、Kafka、ActiveMQ 、Redis、 ZeroMQ、Apache Pulsar对比和如何使用

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

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

    ActiveMQ、RabbitMQ、RocketMQ、Kafka介绍

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

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

    【消息队列技术 RabbitMQ 和 Apache Kafka对比】

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

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

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

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

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

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

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

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

    Kafka、ActiveMQ、RabbitMQ和RocketMQ都有哪些区别?

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

    2024年04月11日
    浏览(14)
  • 主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

    下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更详细和专业的对比: 特性/功能 Kafka RabbitMQ ZeroMQ RocketMQ ActiveMQ 语言 Java Erlang C Java Java 协议 自有协议 AMQP 自有协议 自有协议 JMS 可靠性 Kafka 使用分布式日志存储,具有高可靠性和持久性 RabbitMQ 提供多种消息确认模式,具有高

    2024年02月03日
    浏览(12)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包