有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何创建跨服务域模型映射?

我在Spring Boot微服务架构中有两个微服务。比如说

  • 热点服务
  • 附件服务

这两个服务都包含一个域模型,当然最终都是在不同的JAR中

热点域模型(热点服务)

@Entity
public class HotSpot {

    @Id
    private Long id;
}

附件域模型(附件服务)

@Entity
public class Attachment {

    @Id
    private Long id;
}

如果你创建了一个新的热点,应该可以添加一个额外的附件,比如描述图像。因此,热点实体与其附件之间应该存在某种关联/映射。在单片应用程序中,这将通过使用JPA注释@OneToOne或类似的东西进行注释来实现

如何在微服务架构中实现这一点?这两个类都在不同的JAR/项目中!我考虑将标识符独立于JPA存储为Long。 有“更好的/其他的想法”吗


共 (1) 个答案

  1. # 1 楼答案

    首先我想问一下,你是如何划分你的微服务的?将相互依赖的资源分开是没有意义的。在您的示例中,我不确定附件是否可以在没有热点的情况下存在。如果不可能,将这两个实体放在两个单独的微服务中肯定毫无意义

    假设您的资源应该在两个微服务中分离,那么每个资源都需要一个URI。如果资源A与资源B相关,您可以将B的URI存储在A中,如果您的mircroservices应该是RESTful的,则在A到B中提供一个具有正确关系的链接。任何像OneTone JPA关系这样的自动系统都不存在