首页 / 消息队列 / 消息队列使用场景分析
消息队列使用场景分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了消息队列使用场景分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含955字,纯文字阅读大概需要2分钟。
内容图文
1. 异步处理
可以更快地返回结果;减少等待时间,提升系统总体的性能。
sp: 秒杀系统
秒杀系统需要解决的核心问题是,如何利用有限的服务器资源,尽可多的处理短时间内的海量请求。处理一个秒杀请求包含很多的步骤,我们就用以下的步骤进行分析。
风险控制=>库存锁定=>生成订单=>短信通知=>更新统计数据
如果没有任何优化,正常的处理流程是:App 将请求发送给网关,依次调用上述5个流程。然后结果返回给APP。
对于对于这 5 个步骤来说,能否决定秒杀成功,实际上只有风险控制和库存锁定两个步骤,对于后续的步骤,并不一定要在秒杀请求中处理完成。所以当前两个步骤完成后就可以马上给用户返回响应,然后把请求的数据放到消息队列中,由消息队列进行后续的操作。这样不仅响应速度更快,并且在秒杀期间还可以集中服务器资源处理秒杀请求。
2.削峰
要对流量进行削峰,最容易想到的解决方案就是用消息队列来缓冲瞬时流量,把同步的直接调用转换成异步的间接推送,中间通过一个队列在一端承接瞬时的流量洪峰,在另端平滑地将消息推送出去。
在这里,消息队列就像“水库”一样,拦蓄上游的洪水,削减进入下游河道的洪峰流量,从而达到减免洪水灾害的目的
这样就可以根据下游的处理能力自动调节流量,但是这样做也是有代价的。
- 增加了系统调用链环节,导致总体的响应时延变长。
- 上下游系统都要将同步调用改为异步消息,增加了系统大额复杂度。
3.服务解耦
场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。如下图
传统模式的缺点:
- 假如库存系统无法访问,则订单减库存将失败,从而导致订单失败
-
订单系统与库存系统耦合
引入消息队列后的方案,如下图:
-
订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功
-
库存系统:订阅下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作
-
假如:在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦
原文:https://www.cnblogs.com/jinyd/p/12256942.html
内容总结
以上是互联网集市为您收集整理的消息队列使用场景分析全部内容,希望文章能够帮你解决消息队列使用场景分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。