• SpringCloud Alibaba实战(2:电商系统业务分析)


    选用了很常见的电商业务来进行SpringCloud Alibaba的实战。

    当然,因为仅仅是为了学习SpringCloud Alibaba,所以对业务进行了大幅度简化,这里只取一个精简版的用户下单业务。

    1、电商业务流程

    电商系统下单业务流程图:

    电商系统下单业务

    这个流程同样进行了简化,一般浏览完商品可能不会直接下单,而是先加入购物车,这里我们略去了这一环节。

    接下来,我们要对业务进行细化,可以通过时序图来对业务流程进行细化。

    用户下单示意图

    2、扣库存时机

    注意看,在我们的泳道图中,扣库存是在用户下订单之后。

    在电商系统里,扣库存一般主要有两种方式:

    • 下单扣库存:下单扣库存是用户体验比较好的方式,避免用户支付的时候发现库存不足。缺点是不合适商品库存有限的情况,因为未付款的订单会影响到其他人购买这款商品。
    • 支付扣库存:支付扣库存对用户体验很不好,因为用户可能在支付的时候发现库存不足。但是比较适合秒杀一类的业务,避免未支付的订单占用库存。

    但是下单减库存应该设置一个超时的时间,如果在一定时间内没有完成支付,那么就应该及时释放库存。

    zai

    3、电商业务流程模块划分

    通过上面的时序图,我们对电商下单的业务已经有了一个比较清楚的认识,接下来,对具体的业务模块进行划分:

    • 1、用户模块:需要有一个用户服务,用于用户基本信息的管理,包括用户名、等级等等。
    • 2、商品模块:用户浏览商品,需要有一个 商品模块来支撑,给用户展示商品的介绍、价格等等这些信息。
    • 3、订单模块:用户下单需要订单模块来创建订单。
    • 4、支付模块:订单创建完成,需要用户付款,这里需要有一个 支付模块 来实现支付功能,用户成功完成支付之后,需要把订单的状态变更为 「已支付」。
    • 5、库存模块:支付完成,就需要运营人员发货,这个步骤,需要扣减对应商品的库存数量,所以要有库存模块,发货完成后,还需要把订单状态变更为「已发货」。

    当然,真实的业务比这要复杂很多,我们只考虑一个简单的用户下单业务,所以主要业务模块就是这些。

    用户下单业务模块划分

    我们采用纵向划分的服务划分方式,以义务为维度,对服务进行划分。


    "简单的事情重复做,重复的事情认真做,认真的事情有创造性地做!"——

    我是三分恶,可以叫我老三/三分/三哥/三子,一个能文能武的全栈开发,咱们下期见!



    参考:

    【1】:小专栏 SpringCloudAlibaba微服务实战

    【2】:电商系统是如何设计的?

    【4】:详解:电商前端库存逻辑的设计

  • 相关阅读:
    Java 内部类理解
    Java 抽象类和接口的理解
    Java String 和 new String()的区别
    Java 基本类型和对象类型的区别
    Java对象与对象引用变量的理解
    bash: crontab: command not found
    Linux下压缩某个文件夹命令
    爬虫实战项目二、字体反爬
    Pandas学习之四:修改增加
    Pandas库学习之三:处理元素
  • 原文地址:https://www.cnblogs.com/three-fighter/p/14843683.html
Copyright © 2020-2023  润新知