微服务在服务之间存储用户信息

Microservices store User info between services

例如我有一个 post 服务。在 UI 我需要显示 post 和用户信息(用于重定向到用户页面的用户名和 ID)

选项:

  1. 我应该将用户名和 ID 存储在 post 服务中吗? (当每个用户注册到系统时,我将通过 RabbitMQ 将子集详细信息发送到 post 服务)。 (来自 UI= 1 的总请求)

  2. 我将只存储用户 (AR) 的 ID。并在 UI 组件获取用户 ID(来自 UI=2 的总请求)

两个都OK。该决定基于您如何在不同边界上下文之间映射概念。 patterns 是:

  • 反腐败层
  • 共享内核
  • 打开主机服务(选项 2)
  • 分道扬镳
  • 客户供应商
  • 墨守成规
  • 伙伴关系
  • 发布语言
  • ...

不仅是个人喜好,还有组织结构(The Conway's Law)。

如果这两个上下文(post 和用户)都由您的团队控制,您可以选择其中一个。考虑到选项 1 的复杂性,我更喜欢选项 2,因为它非常直截了当。从较简单的开始,然后涉及您的架构始终是个好主意。