【发布时间】:2020-06-27 13:36:02
【问题描述】:
我们有一个基于 Web 的整体 CRUD 应用程序(称为 A),它执行特定任务。现在,我们有一个新要求,它在功能上或多或少独立于A。受众不同,使用时间、功能等都不同。因此,我们决定将其构建到一个新的服务B 中。
当B 需要来自A 的身份验证信息时,问题就开始了。预计这可能会再次发生,我们从A 中提取了身份验证并将其作为单独的提供者C。 A 和 B 都可以针对现在包含用户信息的 C 进行身份验证。
出现的下一个问题是用户配置文件A 过去用于保存用户配置文件,但现在,我们将其中大部分移至C。但是,我们需要保留一些额外的字段,B 需要这些字段。问题是我是否应该
- 保留
C中的所有字段,因为它是身份验证服务,也是保存所有用户信息的地方。 - 将其保存在
B,因为这是唯一需要它的地方。
更一般地说,我的问题是如何决定如何将整体分割成单独的部分,如何拆分数据以及如何处理像 userids 这样在所有服务中“共享”的东西?
【问题讨论】:
-
一般情况下,我会将用户信息保存在身份验证服务中。这使得应用程序 D、E、F、G、H 等更易于创建和维护。
-
这通常是有道理的,但有一些与 B 相关的信息与用户相关。这就是我困惑的原因。
-
没有更多细节,很难提供比一般答案更多的东西。我理解你为什么不想进入你的具体情况。
-
如果您可以让我知道您在寻找什么,我可以添加详细信息。
标签: database-design architecture microservices