微服务在服务之间存储用户信息
Microservices store User info between services
例如我有一个 post 服务。在 UI 我需要显示 post 和用户信息(用于重定向到用户页面的用户名和 ID)
选项:
我应该将用户名和 ID 存储在 post 服务中吗? (当每个用户注册到系统时,我将通过 RabbitMQ 将子集详细信息发送到 post 服务)。 (来自 UI= 1 的总请求)
我将只存储用户 (AR) 的 ID。并在 UI 组件获取用户 ID(来自 UI=2 的总请求)
两个都OK。该决定基于您如何在不同边界上下文之间映射概念。 patterns 是:
- 反腐败层
- 共享内核
- 打开主机服务(选项 2)
- 分道扬镳
- 客户供应商
- 墨守成规
- 伙伴关系
- 发布语言
- ...
不仅是个人喜好,还有组织结构(The Conway's Law)。
如果这两个上下文(post 和用户)都由您的团队控制,您可以选择其中一个。考虑到选项 1 的复杂性,我更喜欢选项 2,因为它非常直截了当。从较简单的开始,然后涉及您的架构始终是个好主意。
例如我有一个 post 服务。在 UI 我需要显示 post 和用户信息(用于重定向到用户页面的用户名和 ID)
选项:
我应该将用户名和 ID 存储在 post 服务中吗? (当每个用户注册到系统时,我将通过 RabbitMQ 将子集详细信息发送到 post 服务)。 (来自 UI= 1 的总请求)
我将只存储用户 (AR) 的 ID。并在 UI 组件获取用户 ID(来自 UI=2 的总请求)
两个都OK。该决定基于您如何在不同边界上下文之间映射概念。 patterns 是:
- 反腐败层
- 共享内核
- 打开主机服务(选项 2)
- 分道扬镳
- 客户供应商
- 墨守成规
- 伙伴关系
- 发布语言
- ...
不仅是个人喜好,还有组织结构(The Conway's Law)。
如果这两个上下文(post 和用户)都由您的团队控制,您可以选择其中一个。考虑到选项 1 的复杂性,我更喜欢选项 2,因为它非常直截了当。从较简单的开始,然后涉及您的架构始终是个好主意。