如何选择消息队列

作为一款及格的消息队列产品,必须具备的几个特性包括

  • 消息的可靠传递:确保不丢消息;Cluster:
  • 支持集群,确保不会因为某个节点宕机导致服务不可用,当然也不能丢消息;
  • 性能:具备足够好的性能,能满足绝大多数场景的性能要求。

各消息队列产品对比

RabbitMQ

优点

  • 支持AMQP协议,轻量级、容易部署和使用
  • 灵活的路由配置,exchange模块
  • 客户端支持语言种类多

缺点

  1. 对消息堆积的支持并不好,大量堆积时会导致rabbitmq性能急剧下降
  2. 性能差,支持每秒处理几万到十几万条消息
  3. 编程语言Erlang,非常小众
RocketMQ

优点

  • 阿里出品、社区活跃,JAVA开发
  • 毫秒级响应,每秒处理几十万消息

缺点

  • 国际上没那么流行,周边生态集成和兼容略逊一筹
Kafka

优点

  • 与周边生态系统的兼容性是最好的没有之一,尤其在大数据和流计算领域
  • 设计上大量使用了批量和异步的思想
  • 性能最好,每秒处理几十万跳消息,极限可到千万级别

缺点

  • 异步批量的设计带来的问题是,它的同步收发消息的响应时延比较高
  • Kafka不太适合在线业务场景。

results matching ""

    No results matching ""