首页 > 解决方案 > 微服务的 DDD 数据复制

问题描述

我有用户、付款、产品、结帐服务。用户支付方式;付款人,产品;卖家,结帐:买家等。当新用户注册时。我发布包含用户的事件。并存储所有服务的用户数据。这意味着 15000 个用户是所有服务的 X4 = 60.000 个用户数据。

那样行吗 ?

或者我该怎么办?

标签: microservicesdomain-driven-design

解决方案


那样行吗 ?

从我的观点来看,在微服务架构中,所需数据本身的复制完全可以的,如果它出于正确的原因发生的话。而且我什至不一定首先将其视为正常的数据重复。

每个微服务都有自己的域模型,因此用户模型——您已经在不同的服务(付款人、卖方等)中以不同的方式命名——在不同的上下文中表示不同的东西。很可能还会有数据添加到每个服务中的那些用户对象,这些数据甚至不为用户服务所知。

或者我该怎么办?

...但您仍应考虑每项服务中用户数据的表示形式。甚至可能没有必要在创建用户后立即在您的每个服务中构建用户模型(卖方、买方等)的投影。

如果我需要手头有一些用户信息,例如,当我必须执行一些域逻辑时,我只会这样做。您很有可能只需要您的一项服务中相应用户的 ID(或者说唯一的用户名)即可将用户连接到某个域实体。或者您甚至可以按需创建相应的用户对象,例如在结帐过程中。


推荐阅读