如何选择消息队列

rabbitmq

优点

  1. 开源,流行;
  2. 有Exchange 模块,支持非常灵活的路由配置;
  3. 支持的编程语言很多;

缺点

  1. rabbitmq 对消息积压的支持并不好, 在它的设计理念里面,消息队列是一个管道,大量消息积压会导致性能急剧下降;
  2. 性能比较差,每秒可以处理几万到十几万的消息;
  3. 使用 Erlang 编写,比较小众;

RocketMQ

优点

  1. 性能比rabbitmq 高一个数量级,每秒大概能处理几十万条消息;

缺点

  1. 国产消息队列,知名度比较低;

Kafka

Kafka 与周边生态系统的兼容性是最好的,没有之一;

Kafka 并不太适合在线业务场景;

优点

  1. 性能比rabbitmq 高一个数量级,每秒大概能处理几十万条消息;