这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
消息队列:在互联网章的各种业务中起着十分重要的作用。在这次的学习中会了解到消息队列的底层原理、架构设计以及部分高级特性。首先我们要明白消息队列是解决什么问题,那么接下来就从一个情景中来感受一下。
场景
当你想买一台新出的游戏笔记本,看到其他平台的价格都比较贵,此时想到了抖音的直播间搞活动,这时候就掏出了手机打开抖音搜索,找到想要的直播间进行购买,发现通过直播间的优惠价格可以少很多。此时我们需要想一下,在进行这些步骤,我们的程序背后发生了什么。
案例一:系统崩溃
请求会先到搜索商品这个服务中,系统会记录下你的搜索行为,在点击该商品的时候,又记录了我们点击的商品,数据会通过计算分析,目的是为了下一次给用户更加准确的信息。此时我们负责
记录存储程序所在的机房被数据库被删库跑路了,导致所有的操作都动不了应该怎么办?
服务能力有限
当我们看到直播间的价格后,需要购买商品,但是发现商品是在3分钟后开抢,此时有无数台手机在和你抢这个机器。那么此时程序做什么呢?
当很多人发起了订单请求,面对公司的服务器配置弱,订单服务只能同时处理10个订单请求。也就是说面对庞大的请求量,处理订单的服务一脸茫然,它的命运该何去何从?
案例三:链路耗时长尾
当自己提交订单之后,发现一直转圈圈(这个我们经常遇到,很是生气)。卡在这个界面后,等待了很长时间,终于抢到了订单,心里想:这个太慢了,以后还用不用啊。那么想一下此时的问题是什么?
我们发现,库存服务和订单服务都很快,但是最后通知商家这一步慢了很多,那么该如何优化流程才能挽回我们这个优质用户呢?
案例四:日志存储
我们抢到我们需要的游戏笔记本后,心里非常兴奋,一看时间该睡觉了,那么此时服务会进行什么操作呢?
虽然用户抢到了自己想要的东西,但是客户端的会议室里有了悲伤的声音,因为刚才因为订单的原因导致服务器坏掉了,我们的本地日志也没有了,没有了本地日志,那么该如何修复刚刚我们发现的问题?
总结一下我们的问题:
- 系统崩溃
- 服务处理能力有限
- 链路耗时长尾
- 日志如何处理