問題

私はSpring Bootマイクロサービスアーキテクチャで2つのマイクロサービスを持っています。言いましょう...

  • ホットスポットサービス
  • 添付ファイルサービス

両方のサービスには、最後に別々のJARでドメインモデルが含まれています。

ホットスポットドメインモデル(HotSpotサービス)

 @Entity
public class HotSpot {

    @Id
    private Long id;
}
 

添付ファイルドメインモデル(添付ファイルサービス)

 @Entity
public class Attachment {

    @Id
    private Long id;
}
 

新しいホットスポットを作成する場合は、説明画像のように、追加の添付ファイルを追加することができます。したがって、ホットスポットエンティティとその添付ファイルの間に何らかの種類の関連付け/マッピングが存在するはずです。モノリシックアプリケーションでは、これはJPAアノテーション@OneToOneなどで注釈を付けることによって実装されます。

マイクロサービスアーキテクチャでこれをどのように達成できますか?両方のクラスは別々のJAR /プロジェクトにあります! JPAとは独立してLongとして識別子を格納することを考えました。 どんな「より良い」/他のアイデア?

  ベストアンサー

まず、マイクロサービスをどのように分割していますか?お互いに依存しているリソースを分離するのは意味がありません。あなたの例では、HotSpotなしでAttachmentが存在するかどうかはわかりません。それが不可能な場合は、2つの別々のマイクロサービスでこの2つのエンティティを持つことは確実に意味がありません。

リソースを2つのマイクロサービスで区切る必要があると仮定すると、各リソースにURIが必要です。リソースAがリソースBに関連している場合は、BのURIをAに格納するだけで、mircroservicesがRESTfulでなければならない場合は、AからBへのリンクを適切な関係で提供します。 OneToOne JPA関係のような自動システムは存在しません

  同じタグがついた質問を見る

javaspringspring-bootjpamicroservices