
这是我的第 64 篇原创文章
作者 | 悟空聊架构
来源 | 悟空聊架构(ID:PassJava666)
本篇的灵感来自我超级喜欢的一篇文章:《如果把中国 442 位皇帝都放在一个群里面,他们会聊些什么》。
其实我的第一篇文章就是用这种方式写的《悟空聊无事务》,这也是我的公众号名字的来源,叫做:「悟空聊架构」 。
本篇也会以 「群聊、单聊、朋友圈」 的方式来讲解计算机世界中消息队列的一些奇闻趣事。
从事软件开发的同学,一定都听过或用过消息队列,比如 RabbitMQ,Kafka。消息队列简单来说就是生产者将很多消息放到一个队列结构中,由其他消费者来消费。想了解更多队列的知识,看下我之前写的 18 个 Queue 的文章,保证整的明明白白。传送门:45张图庖丁解牛18种Queue。
那如果把常见的四大消息队列拉到一个群里,会碰出哪些火花呢?
四大队列被中间件大队长拉到了一个群里面。
群名:悟空聊架构群。
成员数:25 个。
管理员:中间件大队长。
群主:神秘悟空哥。
大家来感受下他们的聊天界面吧~
👇👇👇

RabbitMQ 单独找中间件大队长聊天的画面。

涉及的故事:

涉及的故事:

他们聊的操作界面又是啥?
他们说的阿里出品又是啥?

点开图片后查看大图,mysql 不会飞 的朋友圈如下:

中间件大队长 邀请 mysql 不会飞进入了群聊。

涉及的故事:
消息队列常用在解耦、削峰、异步场景中。先对这几个点来个大白话扫盲:
悟空大白话削峰:关键词:「别都丢给我!」 比如双十一期间超多用户下单,假如 10万个请求都到数据库了,数据库一下子是扛不住这么多请求的,那么消息队列来解围,把请求丢到消息队列,订单服务从消息队列拿消息处理订单请求,起到了一个缓冲的作用,这样对数据库的压力就小多了。
悟空大白话解耦:关键词:「谁用谁拿」 。A 系统需要将数据传给 B、C、D、E 系统,A 系统时刻需要考虑 B、C、D、E 四个系统如果宕机了怎么办?要不要重发,要不要消息持久化存起来?A 系统要考虑的问题太多了,可把 A 系统累坏了。这就是一种高耦合的现象,BCDE 四个系统强依赖 A 系统。那怎么解耦?A 系统将数据丢到消息队列,BCDE 系统自己想要数据的时候就去消息队列里面拿。
悟空大白话异步:关键词:「先去忙你的吧~」 。比如下一笔订单,从订单支付到订单成功,这个闭环可能很长,比如要发送订单成功消息、赠送优惠券等等操作,用户等待的时间可能很久,用户体验就不好了,那怎么解决呢?可以将下单成功的消息丢到队列里面,快速返回订单成功,然后告知用户,消息触达系统再从队列里面拿到订单数据,依次给用户发送订单消息和优惠券就行了,这个就是异步。

四大消息队列都默默地去看这篇文章去了,听说这篇文章被大佬们转载了 19 次。传送门:这三年被分布式坑惨了,曝光十大坑
下面的彩蛋小伙伴发现没?
mysql不会飞 用到了周杰伦的歌曲:《超人不会飞》
Nigix阳光男孩 用到了周杰伦的歌曲:《阳光男孩》
拍一拍获得了棒棒糖,来自于读者我是一颗糖波波的微信昵称。
该架构聊天群成员数已经 26 个啦,成员有消息队列、各大数据库、分布式中间件,想进群来看一看他们的聊天吗?「在群里不说话都能进步哦~」 加我微信 PassJava 或扫码加我,备注[加群]

你猜我用了几个手机来做聊天截图?
原文作者:悟空聊架构;如有侵权,请联系管理员删除。