主流消息队列对比(kafka、Rabbitmq、Rocketmq)

主流的消息队列有以下几种:

  • Kafka

    Apache开源的消息队列,主要应用于大数据方向上;
    
    1. Kafka是linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量;
    2. 常常用于日志收集和传输;
    3. 0.8开始支持复制,不支持事务,适合产生大量数据的互联网服务的数据收集业务;
    
  • RabbitMQ

    1. RabbitMQ是一个AMQP实现,传统的messaging queue系统实现,基于Erlang。
    
    2. AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景
    
  • RocketMQ

    阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会
    
  • CMQ

    腾讯云分布式高可靠消息队列服务
    

从上面我们看到,如果应用于大数据上,那么毫无疑问就是使用了kafka了, 如果追求对数据一致性、稳定性和可靠性要求很高的场景那么就选择Rabbitmq, 不过对于个人选择,我会选择rocketmq, 我认为Rocketmq真的太强大,是一个真正 在线上在规模应用的消息队列!

主流消息队列对比

    •  
    • RabbitMQ
    • RocketMQ
    • CMQ
    • Kafka
    • 模式
    • 发布订阅
    • 发布订阅
    • 传统 queue/发布订阅
    • 发布订阅
    • 同步算法
    • GM
    • 同步双写
    • Raft
    • ISR(Replica)
    • 分布式扩展
    • 支持
    • 支持
    • 支持
    • 堆积能力
    • 磁盘容量
    • 磁盘容量
    • 磁盘(水平扩展)
    • 磁盘(水平扩展)
    • 性能
    • 很高
    • 可靠性
    • 一般
    • 一般
    • 极高
    • 一般
    • 持久化
    • 内存 /硬盘
    • 磁盘
    • 磁盘
    • 磁盘