假设我们有两个微服务 info-managefile-service ,如果我们的用户想要上传头像。请求是否应该由网关直接路由到 file-serviceinfo-manage ?从内聚的角度来看,所有其他信息都由 info-manage 服务处理,更有意义的是 info-manage 处理上传请求并将请求转发给 file-service 。从性能的角度来看,这完全是在浪费带宽和 CPU。

最佳答案

据我了解,您的信息服务负责管理用户信息,对此有一些逻辑并存储它。然后你有一个文件服务,它包含处理文件的逻辑(你在信息服务中没有)。

所以这是我对你的情况的感受:

首先,因为你有一个网关,你的选择应该对用户透明,所以他只需要调用一个特定的端点来上传这个文件。

其次,选择哪个服务来处理请求取决于逻辑:

  • 用户是否随文件内容发送信息?在这种情况下,您将在信息服务中应用一些逻辑,我建议您调用它,应用逻辑,然后它会向文件服务发出请求以存储文件(此时它可能与考虑将用户信息文件存储在通用文件存储服务中还是将其保存在信息数据库中以避免这种内部调用对您来说是否有趣)
  • 如果你只是发送一个文件并且不期望信息服务应用逻辑,例如要跟踪添加了哪个用户信息文件,只需直接调用文件服务即可。

  • 正如我所说的,如果我从从事服务到现在的感觉,我希望你能得到更多的答案来帮助你澄清这一点。

    关于design-patterns - 微服务是否应该具有仅将操作转发到另一个微服务的操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58852921/

    10-11 09:21