欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

趣谈留言队列,搞清楚留言队列到底是什么!-说到消息队列,洪觉大概能猜到人们听到消息队列的反应,大致可以分为以下几类人。 第一类人,懵懵懂懂,刚上大学接触编程,还没用过消息队列,甚至还以为消息队列就是代码里面要新建一个List之类的;第二类人,听过消息队列,了解消息队列,但具体是什么还不是太明白,只知道一说到消息队列,脑海里马上出现了三组词,削峰、异步、解耦;第三类人,用过消息队列,对它有一定了解,但不知道为什么要这样设计,消息队列有什么样的前世今生,是如何演化到现在的模式的?**第四类人,已经对消息队列有了足够的了解,可以阅读本帖作为复习和温习。**你属于哪一类?无论你对消息队列了解多少,读完这篇文章后,我相信你都会有所收获。 什么是消息队列?我们为什么要使用消息队列?真的只是因为它看起来很勉强、很常用吗?当然不是,一项技术的出现往往是为了解决某种痛点,我们就从这个痛点出发,看看消息队列到底是为了解决什么问题而诞生的。 相信大家在工作之前,或者工作中接触单片机的次数会多一点,不管什么业务都一股脑塞

最编程 2024-03-27 10:09:13
...

在这里插入图片描述

​ 那到底啥是消息队列呢,其实有一个很生动形象的例子。大家都经历过考试,不管是在小学、初中、高中还是大学。简单来说,围绕着消息队列一共有三个方面的人,生产者、消息队列、消费者。生产者就是学生,学生去生产消息,消息指的就是你答的试卷。你做完了试卷(管你做没做完), ​ 就需要提交给监考老师,监考老师相当于一个服务器,这个服务器里面以某种特定的方式存储消息,也就是消息队列,监考老师收了你的试卷但不会现场批改(其实还真有现场批改过的......),你提交试卷给老师,老师会对你点点头,表示它已经接收到了你的答卷,这个时候你就放心的离开了,相当于你生产消息,放进消息队列成功。消费者在这里指的是批改试卷的老师,老师会从消息队列中(监考老师会把一叠试卷交给批卷老师)获取一份消息(试卷)进行消费(批改),还没有被批卷老师消费的消息就会保存在消息队列中,等待批卷老师的消费。

​ 所以消息队列其实就相当于一个中转站,我不管你什么时候消费消息,消息我已经发出去放在这了,你想什么时候拿就什么时候拿。就像快递一样,每次上门送快递,总会遇到失败的情况(不在家等情况),如果把快递放在快递柜里,整个送货/取货就解耦开来。

举了两个例子,想必大家已经了解消息队列到底是个什么东西。

在这里插入图片描述

之前提到的下单支付场景中,为了应对高并发场景,把消息存在消息队列中,是为削峰、 消费者和生产者互不感知,我把消息放进消息队列里,谁去消费我并不关系,是为解耦生产者不需要等待消费者消费才返回成功(支付后,不需要管是否加了积分等),从同步变为了异步。 ​ 好了,看完这边文章,你或许已经大概了解消息队列到底是个什么东西。那当我们学会怎么使用的时候,就应该去探究它的原理,洪爵接下来将带领大家遨游RocketMQ的海洋,准备好了嘛? 在这里插入图片描述

​ 愿每个人都能带着怀疑的态度去阅读文章并探究其中原理。

道阻且长,往事作序,来日为章。

期待我们下一次相遇!

推荐阅读