写点什么

消息队列调研

作者:ZuccRoger
  • 2022 年 5 月 16 日
  • 本文字数:1331 字

    阅读完需:约 4 分钟

分析了 kafka、RabbitMq 以及 Rocket 三种常用的消息队列

定义

消息队列是消息的传输过程中保存信息的容器,用于接受消息并以文件的方式存储,一个消息队列可以被一个或者多个消息者消费。


|             | apache/Kafa                                                  | RabbitMQ                                                     | apache/RocketMQ                                              || ----------- | ------------------------------------------------------------ | :----------------------------------------------------------- | ------------------------------------------------------------ || GitHub star | 21.9k                                                        | 9.5k                                                         | 17.2k                                                        || 特点        | **它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台**,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 |                                                              | 它是纯 Java 开发,**具有高性能、高可靠、高实时、适合大规模分布式系统应用的特点** || 优点        | 1. 高吞吐、低延迟<br />2.高伸缩性<br />3.高稳定性<br />4.持久性、可靠性、可回溯性<br />5. 消息有序<br />6.有优秀的第三方kafka web界面 | 1. 支持几乎所有最受欢迎的编程语言:Java,C,C ++,C#,Ruby,Perl,Python,PHP等等;<br/>2. 支持消息路由:RabbitMQ 可以通过不同的交换器支持不同种类的消息路由;<br/>3. 消息时序:通过延时队列,可以指定消息的延时时间,过期时间TTL等;<br/>4. 支持容错处理:通过交付重试和死信交换器(DLX)来处理消息处理故障;<br/>5. 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker;<br/>6. 社区活跃度高。<br/> | 1.高吞吐:借鉴 Kafka 的设计,单一队列百万消息的堆积能力;<br/>2.高伸缩性:灵活的分布式横向扩展部署架构,整体架构其实和 kafka 很像;<br/>3. 高容错性:通过ACK机制,保证消息一定能正常消费;<br/>4. 持久化、可回溯:消息可以持久化到磁盘中,支持消息回溯;<br/>5. 消息有序:在一个队列中可靠的先进先出(FIFO)和严格的顺序传递;<br/>6. 支持发布/订阅和点对点消息模型,支持拉、推两种消息模式;<br/>7. 提供 docker 镜像用于隔离测试和云集群部署,提供配置、指标和监控等功能丰富的 Dashboard。<br/> || 缺点        | 1. 单机如果超过64个队列或者分区,Load会发生明显飙高的现象,队列越多,load越高,发送消息相应时间变长<br />2. 不支持消息路由,不支持延时发送,不支持消息重试<br />3. 社区更新较慢 | 1. Erlang开发,不利于做二次开发和维护<br />2. RabbitMQ吞吐量会低一些<br />3. 不支持消息有序、持久化不好、不支持消息回溯、伸缩性一般。 | 1. 不支持消息路由,目前是主要是Java 和c++(c++不成熟)<br />    |
复制代码

对比分析

ActiveMQ 5.x 维护越来越少,较少在大规模吞吐的场景中使用所以不做讨论。

参考资料

  1. 面试官问:消息队列该怎么选择?Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ

发布于: 刚刚阅读数: 3
用户头像

ZuccRoger

关注

还未添加个人签名 2019.10.06 加入

还未添加个人简介

评论

发布
暂无评论
消息队列调研_5月月更_ZuccRoger_InfoQ写作社区