3 Comments

  1. hugo

    场景一怎么订单是下游,仓库是上游?下完单,会发送订单已生成事件,仓库才来生成出库单。从这个描述里,订单服务会生成事件,不就是上游服务?

    上下游怎么定义?

    像您说的下单时,要校验库存,从这一点来说,订单服务确实又可以归为下游服务,库存服务为上游服务

    • 麻广广

      上下游区分:
      上游系统相对独立,从知识上来说上游系统并不知道下游系统的存在。
      反过来,下游系统对上游系统是有依赖的,对上游系统的业务知识也是要有的。

      因此从集成方式上来看:
      1. 下游系统可以通过上游系统提供的API来使用上游系统提供的能力;
      2. 上游系统在变化时,如果下游系统需要根据上游系统的变化来变化,那么就需要消费上游系统抛出的事件。

      场景一中只写了可能造成数据不一致的场景,没有把后续流程写完。
      下完单,会生成订单已生成事件,但库存服务肯定不会消费这个事件;在锁定库存的时候是可以通过API把库存需要的必要信息传递给库存服务,库存出库应该有其他的操作触发,可能是业务上订单支付完成后,去提货,仓库管理员操作才能完成出库。

      不知道是不是解答了你的疑问,欢迎留言讨论

      • hugo

        谢谢,清楚上下游的区分了:
        1、上游系统不必知道下游系统的存在——事件通知机制的异步解耦机制;
        2、下游系统对上游系统游依赖——API接口调用的同步依赖;

        至于严谨性的逻辑,我再思考下。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据