如何设计微服务,以便它从两个表中检索数据,而这两个表的实体已在另一个微服务中定义?

问题描述 投票:0回答:1

我开发了一个单一解决方案,将多个项目集成为微服务。 每个微服务都指向同一个数据库。

我正在使用实体框架。

根据下图 -

微服务 1 具有实体 1 并从表 1 中检索数据。以类似的方式,微服务 2 具有实体 2 并从表 2 中检索数据。

现在我有微服务 3,微服务 3 想要需要在表 1 和表 2 之间连接的数据,但我已经在其他微服务(微服务)上创建了相关实体(表 1 和表 2) 1 和微服务 2)。那么如何获取微服务3上的这些数据呢?

如果我需要微服务 3 上表 1 和表 2 的数据,那么需要在微服务 3 上创建相同的实体,但它将创建重复的实体,这与 DRY 原则相反。

问题:如何设计微服务3,使其从实体已在另一个微服务中定义的两个表中检索数据?

提前感谢任何愿意帮助我解决这个疑问的人!

asp.net-core entity-framework-core architecture microservices
1个回答
0
投票

直接回答您的问题:您可以创建一个公共库,在其中保存所有实体,然后将该库导入到所有 3 个服务中。这样您就可以重用代码。在 C# 中,这是通过类库项目完成的,在 JVM 应用程序中,您需要创建一个 JAR 文件。

现在顺便说一句,在经典的微服务架构中,每个微服务都有自己的数据库,这带来了可扩展性、关注点分离等方面的好处(这并不意味着你不能通过探索来玩耍和学习东西)东西)

© www.soinside.com 2019 - 2024. All rights reserved.