与Django rest fram跨微服务共享数据库关系

2024-04-29 14:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个django restapi项目,我已经将它们分离到微服务架构中,其中一个服务是处理身份验证的(SSO)(我使用基于JWT令牌的身份验证)和管理用户信息,另一个是工资单服务。在

问题是user与工资单服务中的某个模型有关。具体地说,我在payroll服务中有一个Employee类,它有一个user_id字段。在这里我将添加一个用户UUID,我将从查询SSO服务中获得该用户。在

考虑到每个服务都有自己的数据库,如何跨微服务共享数据库。在


Tags: 项目django用户模型身份验证restapi信息数据库
1条回答
网友
1楼 · 发布于 2024-04-29 14:41:08

在有限制的上下文中共享数据库是不可取的,因为每个微服务都应该能够对其持久化数据的方式进行更改。 允许多个微服务管理数据库会导致你陷入死星陷阱

但是,您可能希望将身份验证上下文中用户数据的副本/更新发送到工资单服务。这样,你就可以 有独立的数据持久性策略。一种方法是在身份验证上下文中实现事件发射策略, 此事件发射策略将负责广播对订阅者所在的身份验证上下文所做的数据更改 另一个有界上下文可以监听,这样它们就可以在自己的持久性层上存储用户数据的副本。在

相关问题 更多 >