MQ(消息队列)系列学习---常用MQ组件比较

文章目录

  • 前言
  • 1.文字总结
    • 1.1 ActiveMQ
    • 1.2 Kafka
    • 1.3 RabbitMQ
    • 1.4 RocketMQ
  • 2.MQ选择推荐
      • (1)中小型软件公司,建议选RabbitMQ.
      • (2)大型软件公司,建议选择 RocketMQ
      • (3)大型数据型公司,建议选Kafka

前言

这是一个MQ的系列文章,主要由MQ的基础认识到深入了解,和针对不同业务对MQ的技术选型问题。通过文章了解不同MQ的各种区别,和使用MQ会存在的一些问题。

入门篇:MQ(消息队列)系列学习—MQ基础认识
基础篇:MQ(消息队列)系列学习—MQ组件优劣势比较
晋级篇:MQ(消息队列)系列学习—MQ如何保证消息队列高可用
MQ(消息队列)系列学习---常用MQ组件比较_第1张图片

1.文字总结

1.1 ActiveMQ

优点

  • 单机吞吐量:万级
  • topic数量都吞吐量的影响:
  • 时效性:ms级
  • 可用性:高,基于主从架构实现高可用性
  • 消息可靠性:有较低的概率丢失数据
  • 功能支持:MQ领域的功能极其完备

缺点

  • 社区维护较少,官方版本
  • 在大规模吞吐下性能较差

1.2 Kafka

优点

  • 单机吞吐量:十万级
  • 专为大数据准备,数据采集、传输、存储
  • 可用性:高,kafka是分布式
    缺点
  • 社区更新较慢
  • 支持消息顺序,但一台代理服务器宕机会导致消息乱序
  • 使用轮询,消息的实时性取决于轮询间隔时间
  • 消息有可能会被重复消费

1.3 RabbitMQ

优点

  • 由于是erlang语言开发,性能较好,支持高并发
  • 中小公司都选择它
  • 时效性最高
  • 社区活跃性高
  • 管理界面友好

缺点

  • 由于是erlang语言开发,不能定制开发。较难维护,不利于二次开发
  • 吞吐量较低

1.4 RocketMQ

优点

  • 阿里出品,基于java语言。已在阿里中订单、交易、充值、流计算各种高并发场景中使用
  • 单机吞吐量:最高(十万级)
  • 消息可靠性:那是相当可靠,杠杠的
  • 可以自己进行定制化开发

缺点

  • 支持命令行界面,可视化页面不太友好
  • 社区活跃性一般

2.MQ选择推荐

(1)中小型软件公司,建议选RabbitMQ.

1.支持高并发
2.管理界面友好
3.社区活跃,一般中小公司都选择该MQ进行开发,碰见bug在网上也能较快找到
4.消息时效性最高-微秒级

(2)大型软件公司,建议选择 RocketMQ

1.单机的吞吐量最高
2.消息可靠性极高,理论不会丢失。如有对消息可靠性有要求,那么RocketMQ首选
3.基于java开发,可以定制化开发
4.稳定性极好,阿里双11年年帮我们测试

(3)大型数据型公司,建议选Kafka

1.如果由日志采集功能、实时计算-Kafka首选
2.吞吐量极高
3.适合大数据,专门用于处理数据

你可能感兴趣的:(MQ(消息队列)系列学习,队列,kafka,rabbitmq,RocketMQ,消息队列)