下单问题分析及解决方式|学习笔记

简介: 快速学习下单问题分析及解决方式

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)下单问题分析及解决方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12349


下单问题分析及解决方式


本节分析在完成综合案例两大功能时有哪些值得关注的问题。

先来查看下单时存在哪些问题,观察流程图

image.png

首先用户发起下单请求到达后台系统然后后台系统接收到用户请求后进行扣减库存,再进行使用优惠券,进行余额的使用,再进行订单的确认。

image.png

根据基本流程的分析如果在最后确认订单时发生了异常,那么之前扣减的库存优惠券余额都要还原。

image.png

观察下面时序图,详细描述了下单全部流程。用户下单后在下单系统,订单系统接收到订单请求后调用订单服务完成下单。

订单服务先进行订单校验,校验订单参数查看是否合法,然后生成预订单,该订单对于用户不可见,然后再通过 rpc方式调用库存方式减库存,调用优惠券扣减优惠券,再调用用户服务完成扣减余额。操作无误后进行第六步,将上述生成的预订单进行确认,将状态改为可见。

以上就是基本流程,但是如果在确认订单时发生异常如何保证回退?在此处再通过 RPC 方式再调用三个服务会造成用户响应时间变长,在既想保证数据回退,又要保障快速处理。

最好的解决方式是使用消息服务:如果 catch 到异常,在订单服务中给 MQ 发送订单确认失败消息,这三个服务分别去监听 MQ 中有没有确认订单失败消息。如果监听到就完成自己的回退操作:回退库存、回退优惠券、回退余额。

此处订单服务也监听消息,若有确认订单失败,就将刚才生成的订单设置为取消。这样通过 MQ 很好的处理了现在的问题,保证了数据的完整性。

以上就是下单时需要关注的问题以及问题基本的解决方案:通过 MQ 保障数据的完整性。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
12556 1
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
|
安全 Linux 网络安全
操作系统的哲学:从技术到人文的探索
【8月更文挑战第22天】在数字时代的浪潮中,操作系统不仅是计算机硬件与软件之间的桥梁,更成为了我们理解世界、构建现实的一种隐喻。本文将探讨操作系统背后的哲学意义,从技术的层面出发,逐步深入到人文的思考,揭示操作系统如何影响我们的世界观和生活方式。通过分析操作系统的设计理念、发展历程及其对社会文化的影响,本文旨在启发读者重新审视这个我们日常依赖的技术产物,思考其在现代社会中的角色和意义。
时序图----购买商品的时序图画法
这篇文章介绍了如何绘制购买商品的时序图,包括用户(商家、顾客)与在线购物系统以及在线购物系统与第三方支付系统之间的交互过程。
时序图----购买商品的时序图画法
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
362 0
|
机器学习/深度学习 计算机视觉
【保姆级教程|YOLOv8添加注意力机制】【2】在C2f结构中添加ShuffleAttention注意力机制并训练
【保姆级教程|YOLOv8添加注意力机制】【2】在C2f结构中添加ShuffleAttention注意力机制并训练
|
人工智能 安全 Linux
从龙蜥Anolis OS看国产操作系统的未来
作为我国的自主研发操作系统之一,龙蜥操作系统在技术创新和生态建设方面取得了一定的成绩。该操作系统以Linux为内核,结合国产化软硬件技术,具备了高度的自主可控性和安全性,在国家信息安全和国防安全方面具有重要意义。本文结合龙蜥操作系统的一些背景和亮点,引出对国产操作系统现状的深思,号召通过加强技术创新和生态建设、促进行业间的合作与交流、建立更加规范化的管理体系等方面,推动国产操作系统健康有序发展。只有这样,我们才能建立一个技术领先、安全可控、生态完善的国产操作系统生态,真正让国产操作系统成为一张具有丰富内涵和价值的名片。
从龙蜥Anolis OS看国产操作系统的未来
|
Java 数据安全/隐私保护
开源一个基于SpringBoot的慈善公益平台(二)
开源一个基于SpringBoot的慈善公益平台
261 0
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进之C2f模块融合CVPR2023 SCConv
卷积在各种计算机视觉任务中表现出色,但是由于卷积层提取冗余特征,其计算资源需求巨大。虽然过去用于改善网络效率的各种模型压缩策略和网络设计,包括网络剪枝、权重量化、低秩分解和知识蒸馏等。然而,这些方法都被视为后处理步骤,因此它们的性能通常受到给定初始模型的上限约束。而网络设计另辟蹊径,试图减少密集模型参数中的固有冗余,进一步开发轻量级网络模型。
1867 0