【发布时间】:2017-11-07 16:25:12
【问题描述】:
我有一个关于分解成微服务的问题。假设我们有 2 个微服务:User 和 Product。假设我们现在需要向系统添加类别。更具体地说,一个产品有一个或多个类别(例如产品红色微型法拉利属于玩具和汽车类别),用户可以拥有她喜欢的类别(例如玩具和鞋子)。现在,当我们检索完整的产品列表时,我们希望对它们进行排序,使得属于首选用户类别的产品位于顶部。
基本上是有一个在微服务之间共享的概念(在这种情况下是类别)。如何在微架构环境中对此进行最佳建模?我看到了两种解决方案:
解决方案 1:
- 创建一个单独的“类别”微服务来管理类别的 CRUD
- 在产品服务中有一个 API 调用将类别 ID 链接到产品
- 在用户服务中有一个 API 调用将类别 ID 链接到用户
- 在产品服务中,我们有一个 API 调用来获取按偏好订购的产品。为此,产品服务需要调用用户服务来获取用户类别(或监听用户服务发出的事件)
解决方案 2:
创建一个单独的“类别”微服务来管理类别的 CRUD
分类服务还有一个 API 调用将产品 ID 链接到分类
分类服务还有一个 API 调用将用户 ID 链接到分类
-
在产品服务中,我们有一个 API 调用来获取按偏好订购的产品(要使这项工作正常工作,产品服务需要调用类别服务来获取用户和产品类别(或监听事件)
这两种解决方案的优缺点是什么?
【问题讨论】:
标签: architecture microservices bounded-contexts