订单业务解耦

本文探讨了在订单取消场景下如何进行业务解耦与并发优化,涉及订单、物流和支付三个核心业务。传统的串行处理方式可能导致调用链路长、效率低下。为解决此问题,提出了先处理主业务(订单取消),然后并行处理退款和物流退货的策略。同时,讨论了并行处理可能带来的挑战和解决方案,强调了解耦在确保业务稳定性与效率提升中的重要性。
摘要由CSDN通过智能技术生成

如何解耦(按照什么标准解耦)?

eg: 有一支付成功的订单,已经发货,用户取消订单? 这个场景从业务设计上讲如何解耦?

可能涉及的业务:订单业务、物流业务、支付业务(暂时只罗列这3个业务)

这些3个业务中可能发生的实际业务场景:

        1、用户取消订单---->订单业务---->订单服务;

         2、给用户(订单)退款---->支付业务--->支付服务;

         3、已发出货物原路返回---->物流业务-->物流服务(或者第三方物流服务);

按照事物发展时间顺序排列上边3个业务场景应该是这样的:
        用户发起取消订单----->调用订单服务(取消订单成功)----->调用支付服务(发起退款成功)---->调用物流服务(回退货物);

这样串行设计及服务调用(串行同步调用)存在的问题:

        1.调用链路长,链路越长越容易出错(技术实现等都需要环环相扣);

        2.执行效率低下(降低了并发效率,增加了服务的负担);

如何优化:

        1、将串行改为并行: 如何并行??1、2、3同时并行,1失败了 2 和 3成功了 事务回滚或者补偿,貌似可以。如果1补偿还是失败了,岂不尴尬了;

        2、这个是什么业务?是个订单取消业务 ,退款和物流属于订单退款后引申出来的业务,属于从业务;因此先处理主业务,主业务处理成功后,并行处理2和3;将主从业务解耦,至于采用什么样的技术手段实现那就是另外一个问题了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值