主流mq

rabbitmq

优点

  1. 轻量级,快速,部署使用方便
  2. 支持灵活的路由配置
  3. 支持大多数编程语言

缺点

  1. 大量消息堆积,性能急剧下降
  2. 每秒处理几万到几十万消息
  3. erlang开发,二次开发代价高

rocketmq

缺点

  1. RocketMQ几乎具备了消息队列应该具备的所有特性和功能。
  2. java开发,阅读源代码、扩展、二次开发很方便。
  3. 对电商领域的响应延迟做了很多优化。在大多数情况下,响应在毫秒级。如果应用很关注响应时间,可以使用RocketMQ。
  4. 性能比RabbitMQ高一个数量级,每秒处理几十万的消息。

缺点

  1. 跟周边系统的整合和兼容不是很好

kafka

  1. Kafka的可靠性,稳定性和功能特性基本满足大多数的应用场景。

兼容性好,尤其是大数据和流计算领域,几乎所有相关的开源软件都支持Kafka。

  1. Kafka高效,可伸缩,消息持久化。支持分区、副本和容错。
  2. Kafka是Scala和Java开发的,对批处理和异步处理做了大量的设计,因此Kafka可以得到非常高的性能。它的异步消息的发送和接收是三个中最好的
  3. 如果是异步消息,并且开启了压缩,Kafka最终可以达到每秒处理2000w消息的级别。

缺点:

  1. 但是由于是异步的和批处理的,延迟也会高,不适合电商场景

image.png