首先我们要知道什么是消息队列
消息队列字面意思就是存放消息的队列,里面有三个角色(生产者,消息队列,消费者)
消息队列的好处就像快递员把快递放在快递柜一样,客户是消费者,快递小哥是生产者
我们可以使用一些中间件:kafka,rabbitmq等等
1、基于Redis消息队列-List实现,它的数据结构是一个链表,容易模拟出入队列效果,出口和入口不一样,缺点是当消息队列当中没有消息时,它不会阻塞,这时候可以使用LPUSH和RPOP。
优点是有不受限与JVM内存上线、基于Redis持久化机制,有利于数据的安全性。队列中消息是有序性的。
2、基于PubSub的消息队列
消费者可以订阅一个或多个channel,生产者向对应channel发送消息后,所有订阅者都能收到相关消息。
优点:采用发布订阅模型,支持多生产、多消费
缺点:不支持数据持久化
无法避免消息丢失
消息堆积有上限,超出时数据丢失
3、基于Stream实现消息队列
它基于快解决上面的所有缺点
优点:1.消息可回溯
2.一个消息可以被多个消费者读取
3.可以阻塞读取
4.有消息漏读的风险
264

被折叠的 条评论
为什么被折叠?



