
常用MQ组件比较
前言
这是一个MQ的系列文章,主要由MQ的基础认识到深入了解,和针对不同业务对MQ的技术选型问题。通过文章了解不同MQ的各种区别,和使用MQ会存在的一些问题。
入门篇:MQ基础认识
基础篇:MQ组件优劣势比较
晋级篇:MQ如何保证消息队列高可用
1.文字总结
1.1 ActiveMQ
优点
- 单机吞吐量:万级
- topic数量都吞吐量的影响:
- 时效性:ms级
- 可用性:高,基于主从架构实现高可用性
- 消息可靠性:有较低的概率丢失数据
- 功能支持:MQ领域的功能极其完备
缺点
- 社区维护较少,官方版本
- 在大规模吞吐下性能较差
1.2 Kafka
优点
- 单机吞吐量:十万级
- 专为大数据准备,数据采集、传输、存储
- 可用性:高,kafka是分布式
缺点
- 社区更新较慢
- 支持消息顺序,但一台代理服务器宕机会导致消息乱序
- 使用轮询,消息的实时性取决于轮询间隔时间
- 消息有可能会被重复消费
1.3 RabbitMQ
优点
- 由于是erlang语言开发,性能较好,支持高并发
- 中小公司都选择它
- 时效性最高
- 社区活跃性高
- 管理界面友好
缺点
- 由于是erlang语言开发,不能定制开发。较难维护,不利于二次开发
- 吞吐量较低
1.4 RocketMQ
优点
- 阿里出品,基于java语言。已在阿里中订单、交易、充值、流计算各种高并发场景中使用
- 单机吞吐量:最高(十万级)
- 消息可靠性:那是相当可靠,杠杠的
- 可以自己进行定制化开发
缺点
- 支持命令行界面,可视化页面不太友好
- 社区活跃性一般
2.MQ选择推荐
中小型软件公司,建议选RabbitMQ
- 支持高并发
- 管理界面友好
- 社区活跃,一般中小公司都选择该MQ进行开发,碰见bug在网上也能较快找到
- 消息时效性最高-微秒级
大型软件公司,建议选择 RocketMQ
- 单机的吞吐量最高
- 消息可靠性极高,理论不会丢失。如有对消息可靠性有要求,那么RocketMQ首选
- 基于java开发,可以定制化开发
- 稳定性极好,阿里双11年年帮我们测试
大型数据型公司,建议选Kafka
- 如果由日志采集功能、实时计算-Kafka首选
- 吞吐量极高
- 适合大数据,专门用于处理数据
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Eternal Night
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果