Kafka 和 RabbitMQ 比较

从以下几个方面比较 Kafka 和 RabbitMQ:

  • 吞吐量

    Kafka:十万数量级,高吞吐量

    RabbitMQ:万数量级

  • Topic 数量对吞吐量影响

    Kafka 的 Topic 可达百/千级,吞吐量下降幅度小,在同等机器下,可以支撑大量的 Topic。

    RabbitMQ 无 Topic 概念。

  • 时效性

    Kafka 毫秒级;RabbitMQ 微秒级

  • 可用性

    Kafka 基于分布式架构,可用性非常高

    RabbitMQ 基于主从架构实现高可用

  • 可靠性

    Kafka 优化参数配置,可以做到零丢失

    RabbitMQ 基本不会丢失数据

  • 功能

    Kafka 功能较为简单,主要支持简单的消息队列功能,在大数据领域的实时计算以及日志采集被大规模使用

    RabbitMQ 基于 ErLang 开发,并发能力很强,性能极好,延时很低

总结:

  • Kafka 主要特点是基于 Pull 的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8 版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务
  • RabbitMQ 是使用 Erlang 语言开发的开源消息队列系统,基于 AMQP 协议来实现。AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP 协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次

参考:

posted @   行行行行星  阅读(126)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示