我正在研究PAAS解决方案作为产品。我们在几个微服务中划分了业务流程。这些流程的核心部分与几乎所有的微服务密切相关。
创建单独的服务来管理用户管理等数据是一种很好的做法吗?实现后,只有此服务才能访问用户和其他相关的数据库表。所有其他服务都必须将此新用户微服务称为用户相关任务。
这种方法将强制我们通过添加非规范化来重构数据库模式。我们不会得到在多个微服务中提供的基础表。如果多个服务需要数据,它将通过微服务共享。
答案 0 :(得分:5)
我会说是的。
毕竟,通常用户凭据,授权身份验证被集中到一个逻辑单元(请注意,这个"逻辑单元"可能是单个服务器或具有统一接口的分布式解决方案。 )
这通常包含用户个人资料管理。请注意,有时您还有一个单独的组件或单元。这完全可以成为一个单独的微服务。
为什么呢?因为管理用户配置文件与所有其他服务不同,包括身份验证和授权。
现在,如果这是一个物理部署点,那么这将是一个瓶颈。但是,如果这是一个分布式服务(即同一个微服务的多个实例,这是另一个讨论的主题),那么这个问题就会得到缓解。
即使在单一的应用程序中(当写得很好时),您通常也会将用户身份验证和管理视为与其他应用程序分离的组件。
希望这有帮助。