redis 的队列和 rabbitmq 的队列有什么区别?
从消息持久化上
mq 可以持久化队列和消息,而 redis 是整个内存持久化
从消息可靠性上
mq 消息消费失败具有重试机制,手动确认应答机制,而 redis 消费失败没有相关机制
从消息消费规则上
mq 可以指定某个消费者消费,而 redis 被所有消费者消费
从可视化界面上
mq 具有可视化界面,可查看路由规则,队列,消息,redis 不具备
欢迎补充
回答·3
最热
最新
- rabbimq 降低耦合,发生一点小故障不会影响整个队列
- redis: 轻量级,低延迟,高并发,低可靠性; rabbitmq:重量级,高可靠,异步,不保证实时;
- 有人问这做什么!看一下,文档不必这全面。而且你的回答与我的想法还真不太一样。 消息队列是生产者消费者设计模式重要中间组件,更多时候用来限制上下游系统的数据处理能力不匹配的问题,可以认为是防止下游,系统被拖垮的利器。在微服务设计中,消息队列也可以用来做消息总线。当然想把它用做存储系统也是没问题。 消息队列的最主要功能实现的是发布订阅功能。至于说消息队列的当前消费者或消费者组指向队列指针可更改,消息确认,即可编码又可设置为自动确认等这些特性不是很自然的吗?看下文档不是谁的知道的事。 至于 redis,它实现了一套发布订阅机制,但 redis 并不是想替换消息机制,这套发布订阅机制,如果消息来的时候,客服端故障离线。那么该条消息不会重发,也不给持久化这一点不假。但 redis 注重的缓存功能,而且 7 重数据类型一定是可以持久化的。 redis 高可用配置一般是哨兵模式,我没做过这种高可用配置,redis 的集群数据同步原理,没详读过文档。略过,需要随时查。 消息队列,说我知道的两种消息队列的集群模式。 kafka,采用的分区存储模式,它的指挥控制大脑是 zookeeper,它接受的高可用配置理念为,2n=c,n 选择基数,偶数等于浪费机器。n 代表整个集群可容忍出故障的节点数。n 等于 1 代表,kafka 有效集群至少需要三个节点。也就是说挂死的节点过半,集群不可用。 rabbitMQ,如果要做集群只能主备模式,而且管理相当麻烦,官方推荐的高可用维护方法,专业的维护人员才可操作。侦测节点故障,切换主备的代码估计还得自己写。了解不够透彻因此也不乱说。 谁接着补充,rocketmq 的知识?这个组件我没看过。 更多的使用我大多是参考官方文档,做过高并发的同学补充点什么是否该看源码,一般情况我不用翻源码。俺的系统可容忍掉线 30 分钟到一个小时都可能。老板或客户出于节约成本也不会允许我玩高可用。