UDN-企业互联网技术人气社区

板块导航

浏览  : 1458
回复  : 0

[讨论交流] RabbitMQ与Redis队列对比

[复制链接]
山外青山的头像 楼主
发表于 2016-3-23 14:28:57 | 显示全部楼层 |阅读模式
本帖最后由 山外青山 于 2016-3-23 14:30 编辑

       简要介绍
  
  RabbitMQ
  
  RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
  
  Redis
  
  是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。
  
  具体对比
  
  可靠消费
  
  Redis:没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理
  
  RabbitMQ:具有消息消费确认,即使消费者消费失败,也会自动使消息体返回原队列,同时可全程持久化,保证消息体被正确消费
  
  可靠发布
  
  Reids:不提供,需自行实现
  
  RabbitMQ:具有发布确认功能,保证消息被发布到服务器
  
  高可用
  
  Redis:采用主从模式,读写分离,但是故障转移还没有非常完善的官方解决方案
  
  RabbitMQ:集群采用磁盘、内存节点,任意单点故障都不会影响整个队列的操作
  
  持久化
  
  Redis:将整个Redis实例持久化到磁盘
  
  RabbitMQ:队列,消息,都可以选择是否持久化
  
  消费者负载均衡
  
  Redis:不提供,需自行实现
  
  RabbitMQ:根据消费者情况,进行消息的均衡分发
  
  队列监控
  
  Redis:不提供,需自行实现
  
  RabbitMQ:后台可以监控某个队列的所有信息,(内存,磁盘,消费者,生产者,速率等)
  
  流量控制
  
  Redis:不提供,需自行实现
  
  RabbitMQ:服务器过载的情况,对生产者速率会进行限制,保证服务可靠性
  
  出入队性能
  
  对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。
  
  测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。
  
021448393248578_thumb.png


  注:此数据来源于互联网,部分数据有误,已修正
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部