码迷,mamicode.com
首页 > 其他好文 > 详细

消息队列比较

时间:2017-10-05 15:36:47      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:消息   其他   col   nod   全局   erlang   地方   style   list   

主要是比较这几种队列中间件:

  • rabbitmq
  • kafka
  • rocketmq
  • ONS

分以下几个维度来比较

高并发

    • 毫无疑问KAFKA发消息的速度是最快的
    • ROCKETMQ/ONS次之
    • rabbitmq最慢

高可用

    • 这几种都能做MASTER/SLAVE,跨机房的高可用
    • KAFKA复制有很多坑,所以这个分数要降低

所需要的节点数量

    • KAFKA集群环境下,需要依赖zk, zk至少3个节点,再加上kafka的至少3个节点,那就是6个
    • ROCKETMQ集群环境下,虽然不依赖zk,但是需要name server,至少2个节点,2个MASTER,就是4个
    • RABBITMQ集群环境下,不依赖zk,只要3个erlang node,就是3个

全局顺序消费

    • KAFKA只要在分区是1个情况下才能大致的做到全局消费的顺序
    • ROCKETMQ/ONS同上,只是变成了另外一个术语
    • RABBITMQ能大致保证全局顺序消费
    • 以上所讲的都是消息没有被拒绝或者消息处理失败重新回到队列的情况

其他功能-流控

    • 只有RabbitMQ有

其他功能-优先级队列

    • RabbitMQ对优先级队列支持最完善

 结论

  1. Rabbitmq很适用于小团队和高并发不是很突出的地方,并且团队希望尽量自动化
  2. 牵涉到高并发,并且是业务消息要用rocketmq/ons
  3. 牵涉到高并发,但不是业务消息的用kafka

 

消息队列比较

标签:消息   其他   col   nod   全局   erlang   地方   style   list   

原文地址:http://www.cnblogs.com/aarond/p/queue-compare.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!