同事教我什么是 rocketmq系列 第0章节 什么是消息队列及应用场景

什么是队列?
排队嘛,北上广的地铁早高峰,铁围栏绕几圈,中间排满了人。
周末节假日的海底捞,座椅坐着排队,也许你还可以做个指甲,当然也要排队。

什么是消息队列?
消息的队列

请不要打死我?就是这么直白。

消息队列是非常常用的中间件,可是为什么我们需要消息队列呢?

消息队列的应用场景
1.异步处理
周末下雨,不想出去吃饭,点个外卖吧。
我花了1分钟纠结吃什么,然后下单。过了不到一秒,提示我订单成功,等待配送。然后决定先打把游戏。
我的外卖订单消息被做了哪些操作呢?
  1.商家美食准备[热锅,放油,炒菜]或者就是[昨天没卖完的热一下]
  2.骑手取货
  3.骑手送餐
  4.骑手通知我饭到了
对我而言,1234步就是一个异步过程,我可以在这个过程中做其他事情,出国旅游,睡觉做梦。


举一个业务上的例子 ------> 有一个文件中的十万条数据要插入数据库

同步做法: 上传文件 -> 数据入库(5min) ->返回成功
异步做法: 上传文件 -> 开一个数据入库线程(1s) -> 返回入库中
同步做法意味着你得等至少五分钟,不做任何其他事情。
异步做法:你得等1s钟,但是真正入库成功还是要等5分钟。但这期间你可以干点别的。

异步的好处,减短客户端的线程占用时间。提示体验。

同事教我什么是 rocketmq系列 第0章节 什么是消息队列及应用场景_第1张图片

2.应用解耦

上学每当寒暑假,各个科目作业都非常多。假设有只数学(2天),语文(2天),英语(2天)
小明做完这些作业得6天。
然后小明联合小红和小雷。
小明做数学
小红做语文
小雷做英语
算上各自抄作业的时间 他们三天就能完成作业!

 

举一个业务上的例子 ------> 下单后的销量增加 减去库存
下单操作50ms -> 销量新增50ms -> 减去库存50ms
那么现在只要60ms

同事教我什么是 rocketmq系列 第0章节 什么是消息队列及应用场景_第2张图片

可以看到,应用解耦也是将库存操作和销量操作异步处理了。

3.流量削峰

商场秒杀,一群人涌进去,不排队的话。销售员招呼不过来,假设有三百名客户,三名销售员。那么让三名商场销售员招呼这么多人,现场肯定非常混乱,销售员当场爆炸。
如果排成队,每当一个销售招待完客户,下一个再进来。队伍过长,告知别排了,等你们排到,肯定没货了。店里客流量就得到控制了。很后面的客户也不会傻傻排几小时然后得到没货了这种结果。

 

举一个业务上的例子 ------> 秒杀1000个XX牌口红

活动开始那一秒,10万个请求瞬间拥挤进来,每一次请求过来,假设服务器要做三件事情,

   1.判断活动时间是否结束,10ms

   2.判断商品库存是否大于0,20ms

   3.下单操作  50ms

同事教我什么是 rocketmq系列 第0章节 什么是消息队列及应用场景_第3张图片

可以看到,图中也使用了应用解耦,和队列的长度来确保避免大量的数据库的库存校验。提升了服务器的响应速度。

4.日志处理

   候补

5.聊天通讯

  候补

 

参考博客:

https://www.sohu.com/a/236014515_797635 消息队列常见的几种使用场景介绍!

你可能感兴趣的:(rocketmq,rocket,rocketmq,消息队列应用场景,什么是消息队列)