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