如何从DDD中的其他微服务获取数据?

时间:2020-07-26 09:11:50

标签: microservices domain-driven-design

我有两个服务order serviceZ service(Z是一个假设名称)。我的项目中有3层(域,应用程序,基础结构)。订单服务具有注册API。用户将这个Web服务以及手机号码和其他数据一起调用。在订购服务中,为了接收Z_ID,需要将此电话号码发送到订购服务

enter image description here

我在基础结构层中有一种用于呼叫Z服务的方法。但是我的问题是应该在哪一层调用此方法?

应在应用程序层中按以下方式进行处理:

$order = Order::Create($price, $shop);
$Z_id = // call method in infrastructure
$order->setZID($zid);

还是域层必须向基础结构层请求?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式解决此问题:

  1. 声明域接口(存储库模块)
  2. 在基础架构中实现界面
  3. 在您的应用程序层中将其用作普通的存储库构建块

值得注意的是,在此方法域中,不再依赖基础架构,因此,它为您提供了极大的灵活性-例如,更改微服务甚至使用DB代替HTTP调用更容易,这种态度被称为六角形的建筑。