下单功能时序图分析|学习笔记

简介: 快速学习下单功能时序图分析

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)下单功能时序图分析】学习笔记,与课程紧密联系,让用户快速学习知识。

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


下单功能时序图分析

image.png

首先分析一下时序图(如上图),这个时序图上面显示整个下单业务所有的流程,用户请求订单系统,这个外部系统去完成下单的请求。

现在订单系统接收到用户请求后去调用这个订单服务,去完成一个订单的保存。

调用下单服务怎么调用的呢?通过远程 RPC 方式去调用,然后订单服务接收到订单请求之后,现在先去完成校验订单操作,再生成预订单,这个预订单对于用户来说是不可见的,再去完成扣减库存操作,把订单当中商品库存进行一个扣减。扣减库存是要去通过远程 RPC 方式去调用这个库存服务去扣减这个库存,扣减成功之后再去调用优惠券服务去完成扣减优惠券的服务,扣减优惠券之后再去调用用户服务去完成扣减余额的操作,当这个扣减余额完成之后在第六步可以进行订单的确认,这个订单确认是在第二步生成预订单时候把这个不可见的订单改为可见的,让用户可见。

如果这一步确认成功之后,其实当前的下单业务就完成了,再给用户做一个享用。

但是如果在这个地方执行失败了,在前面扣减的库存,所扣减的优惠券,所扣减的余额都要回退到原始的状态。所以当如果发生异常,就给 MQ 发送一条消息。

当前的库存服务、优惠券服务还有用户服务以及订单服务,它们都会去同时去监听 MQ 当中的消息。如果发现有得到订单确认消息失败之后,它们分别对库存进行回退,对优惠券进行回退,对余额进行回退以及把这个订单进行取消,这是整个下单业务所有的流程。

现在正式进入开发,在开发的时候分成两条主线去做。首先先把整个成功的流程开发完,然后再去处理异常情况,再通过消息的低智能进行一个失败的补偿体制,这是整体一个编写代码的流程。      

相关文章
预约抢单互助系统开发详细功能/需求方案/步骤功能/逻辑项目/源码案例
The development model of appointment and order grabbing mutual assistance system is a widely used development model on mutual assistance service platforms. It adopts a combination of appointment and order grabbing modes, allowing users to make appointments or actively participate in mutual assistanc
|
存储 人工智能 供应链
产品流程图是什么?怎么做?
介绍产品流程图的5个种类,4个模板网站
产品流程图是什么?怎么做?
|
存储 安全 前端开发
预约上门按摩项目系统开发详细流程/案例介绍/功能逻辑/需求方案/源码模式
确定系统的目标用户,例如个人用户或企业用户。 - 确定系统的核心功能,如用户注册和登录、服务列表和预约管理、支付和评价反馈等。 - 确定技术平台和开发语言,如Web应用还是移动应用,以及开发语言和框架的选择。 - 制定项目计划,并确定开发阶段和时间安排。
|
存储 NoSQL 算法
线上真实排队系统重构案例分享——实战篇
线上真实排队系统重构案例分享——实战篇
547 0
|
uml C语言
如何画系统时序图
如何画系统时序图
246 0
|
uml C语言
系统时序图
如何画系统时序图
164 0
|
存储 缓存 Java
SpringBean生成流程详解 —— 由浅入深(附超精细流程图)
SpringBean生成流程详解 —— 由浅入深(附超精细流程图)
530 0
支付流程时序图
支付流程时序图
121 0
支付流程时序图
|
uml C语言
架构设计:系统时序图
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
676 0
|
JavaScript 前端开发 测试技术