【问题标题】:How to make cross treatments on microservices如何对微服务进行交叉处理
【发布时间】:2018-09-09 14:24:29
【问题描述】:

我正在学习微服务,但我不了解如何构建。

假设我们正在做一个电子商务应用程序。我们将为目录(包含产品)提供一项服务,一项针对价格的服务,一项针对促销的服务和一项针对购物车的服务。

我的问题是:哪个服务负责在购物车上应用促销活动,因为这种处理需要来自购物车服务和促销服务的数据,并且必须将结果(具有新价格的购物车)保存在某处(但在哪里?)。

感谢您的帮助!

【问题讨论】:

    标签: domain-driven-design microservices cqrs


    【解决方案1】:

    假设每个微服务都有自己的限界上下文,因此它有自己的业务逻辑和数据库完全分离,所有微服务都是松散耦合的。

    您的购物车负责计算价格,因为这是该微服务的主要职责,因此也将应用促销的服务是购物车的主要职责。

    但要在促销后重新计算价格,它必须保留和维护一些与促销相关的数据。如果您使用事件驱动设计,您可以在向购物车添加/更新或删除促销时发送事件。

    或者您可以在促销微服务中调用端点以在运行时检查折扣率或百分比,但此时,您的购物车微服务将与促销微服务耦合。

    每种方法都有一些优点和缺点,这取决于您的设计

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-28
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多