栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis和RabbitMQ做消息队列的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis和RabbitMQ做消息队列的区别

一、RabbitMQ

是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然

二、Redis

是一个key-value的NoSQL数据库,redis的设计是用来做缓存的,他是一个内存数据库,不过因为其某些特性适合用来充当队列(list),多被用于做简单的mq,有阻塞式的API可以做消息队列。

redis可以实现主从同步,负载均衡的数据库

三、具体区别
RedisRabbitMq
可靠消费没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理具有消息消费确认,即使消费者消费失败,也会自动使消息体返回原队列,同时可全程持久化,保证消息体被正确消费
可靠发布

不支持

需自行实现

Redis的消息队列,如果在从队列pop出去的时候,worker处理失败的话,数据不会回到队列中,需要从业务中手动把失败的处理数据push到队列中;

具有发布确认功能,保证消息被发布到服务器

高可用

集群模式

采用主从模式,读写分离,但是故障转移还没有非常完善的官方解决方案

集群采用磁盘、内存节点,任意单点故障都不会影响整个队列的操作。
持久化

灵活度小

将整个Redis实例持久化到磁盘

Redis的持久化是针对于整个redis缓存的内容,它有RDB和AOF两种持久化方式。

灵活度大

队列,消息,都可以选择是否持久化

每条消息都可以选择性持久化,持久化粒度更小,更灵活。

消费者负载均衡

不支持

需自行实现

根据消费者情况,进行消息的均衡分发
队列监控

不支持

需自行实现

支持

后台可以监控某个队列的所有信息,(内存,磁盘,消费者,生产者,速率等)

流量控制

不支持

需自行实现

支持

服务器过载的情况,对生产者速率会进行限制,保证服务可靠性

出人队性能强稍弱

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/936212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号