简要介绍

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四个不同大小的数据。

注:此数据来源于互联网,部分数据有误,已修正

应用场景分析

Redis:轻量级,高并发,延迟敏感

即时数据分析、秒杀计数器、缓存等

RabbitMQ:重量级,高并发,异步

批量数据异步处理、并行任务串行化,高负载任务的负载均衡等

消息队列mysql redis那个好_Redis与RabbitMQ作为消息队列的比较相关推荐

  1. 消息队列mysql redis那个好_Redis作为消息队列与RabbitMQ的比较

    Redis作为消息队列与RabbitMQ的比较 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩 ...

  2. 怎么看rabbitmq的浏览器信息_没用过消息队列?一文带你体验RabbitMQ收发消息

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想 ...

  3. java连接rabbitmq_没用过消息队列?一文带你体验RabbitMQ收发消息

    楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想要梳理一遍,还是需要很多时间,所以我打算慢慢写,先把MQ ...

  4. 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

    前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...

  5. Redis核心技术与实战-学习笔记(十五):消息队列(Redis的解决方案)

    一.消息队列 消息队列:分布式系统必备的一个基础软件,能支持组件通信消息的快速读写 Redis本身支持数据的快速访问,满足消息队列的读写性能需求 二.Redis适合做消息队列吗? 消息队列的消息存取需 ...

  6. RabbitMq(五) -- 死信队列和延迟队列

    1. 死信 1.1 死信的概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue ...

  7. RabbitMQ之镜像队列

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. RabbitMQ之消息的自动应答、手动应答和消息持久化(Java开发)

    1.消息的自动和手动应答 boolean autoAck = true;//消息自动应答 channel.basicConsume(WQ_QUEUE,autoAck,consumer); 默认情况下, ...

  9. 【RabbitMQ】消息应答--ack机制

    目录 消息应答 概念 自动应答 消息应答的方法 Multiple 的解释 手动应答实现 1.准备工具类 2.生产者 3.两个睡眠时间不同的消费者 4.效果展示 消息自动重新入队 效果演示: 消息应答 ...

最新文章

  1. 如何查看和关闭异常SQL进程
  2. 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
  3. python随机生成车牌_Python实现随机生成任意数量车牌号
  4. boost::log::sources::severity_channel_logger_mt用法的测试程序
  5. UE4 多个static mesh合并成一个static mesh
  6. 随便说说程序员团队精神的荣辱与共
  7. Struts2中Action的动态调用方法
  8. 在PhpStorm中管理GitHub代码仓库的使用方法
  9. 局域网聊天工具FreeChat 1.0 开发日志
  10. paip.python pyqt 加载ui 方法使用connect总结attilax
  11. Elasticsearch入门之SpringBoot整合Elasticsearch
  12. cadence IC
  13. 教你怎么用爬虫程序采集企业信息及电话邮箱等信息(以企查查为例)
  14. HTML+JS 实现下载图片到本地
  15. win10任务栏透明_桌面美化|任务栏美化
  16. 常见DOS命令及开发工具
  17. php 图片合成,PHP 实现图片合成(两张合并一张)
  18. matlab 画地图 经纬度,MATLAB绘制地图.docx
  19. 两步完成druid数据库连接池的密文配置
  20. Kubernetes单机开发环境部署记录

热门文章

  1. 打造最强加密工具之《绝密信息传递》
  2. api怎么写_使用Node.js原生API写一个web服务器
  3. mysql密码高级_mysql高级操作
  4. ios调用restful接口_做iOS上最好的REST API测试App
  5. 飞畅科技-PoE交换机的常见问题解答
  6. 【渝粤教育】国家开放大学2019年春季 2732土地利用规划 参考试题
  7. 【渝粤教育】国家开放大学2018年春季 0105-21T酒店营销实务 参考试题
  8. 【渝粤题库】陕西师范大学200431综合英语(一)作业(高起专、高起本)
  9. 【渝粤题库】广东开放大学 物业财税管理基础 形成性考核 (2)
  10. 渝粤教育 陕西师范大学 《JAVA程序设计》作业