微服务之间的资源标识符参考

时间:2018-08-24 10:43:58

标签: microservices domain-model bounded-contexts

假设我们有两个微服务:

用户服务:

用户生命周期管理(CRUD),例如注册和用户个人资料。

可能的api:

  • /用户/注册
  • / users /:userId

订购服务:

管理特定用户创建的订单,在此受限上下文中,该用户应为“买方”。

可能的api:

  • /订单

问题

在创建订单时,Order服务需要知道买方是谁,因此客户将{"buyerId": "xyz"}作为参数,但是Order服务必须确认buyerId是存在的用户在创建订单之前,请先在用户服务中添加

在我的实现中,订购服务将使用HTTP来调用用户服务的/ users /:userId api,并将buyerId作为userId来检查购买者是否确实存在。

当前,一切正常,但以下是我的担忧:

  1. 此方法可能将Order和User服务耦合在一起,因为当User服务因某种原因崩溃时,Order服务无法检查用户引用,并导致Order服务也无法工作。

  2. 如果该用户不存在,则订购服务必须响应用户404 buyer not found,这确实很奇怪。

有人可以给我一些建议吗?谢谢!

0 个答案:

没有答案