我在 Spring Boot 微服务架构中有两个微服务。比方说...
- 热点服务
- 附件服务
这两个服务都包含域模型,当然最终位于单独的 JAR 中。
HotSpot 域模型(HotSpot 服务)
@Entity
public class HotSpot {
@Id
private Long id;
}
附件域模型(附件服务)
@Entity
public class Attachment {
@Id
private Long id;
}
如果您创建新的热点,应该可以添加额外的附件,例如描述图像。因此,热点实体与其附件之间应该存在某种关联/映射。在整体应用程序中,这可以通过使用 JPA 注释 @OneToOne
或类似的内容进行注释来实现。
如何在微服务架构中实现这一目标?两个类都在单独的 JAR/项目中!我考虑过仅将标识符存储为独立于 JPA 的 Long
。
有什么“更好”/其他想法吗?
最佳答案
首先我想问一下你们是如何划分微服务的?将相互依赖的资源分开是没有意义的。在您的示例中,我不确定附件是否可以在没有热点的情况下存在。如果不可能,那么将这两个实体放在两个单独的微服务中绝对没有意义。
假设您的资源应分为两个微服务,您需要为每个资源提供一个 URI。如果资源 A 与资源 B 相关,您只需将 B 的 URI 存储在 A 中,如果您的微服务应该是 RESTful,则在 A 中提供到 B 的具有正确关系的链接。任何像 OneToOne JPA 关系这样的自动系统都不存在。
关于java - 如何创建跨服务域模型映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58196382/