• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

DB가 분리되어 있는 경우??

21.05.06 17:47 작성 조회수 134

0

안녕하세요?

명강의 잘 듣고 있습니다.

강의 내용과 큰 관련은 없긴 하지만 공부하던 중에 궁금증이 생겨 질문드립니다.

실무에서는 MSA 방식으로 프로젝트 진행이 많이 되다보니

DB도 물리적으로 분리되는 경우가 많은 것으로 알고 있습니다.

예를 들면, 회원을 관리하는 MEMBER DB와

주문을 관리하는 ORDER DB가 분리되어 있는 경우

JPA상에서 어떻게 엔티티 작성을 할 수 있나요??

하나의 Member가 여러 개의 Order를 한다면

테이블이 하나의 DB에 있다면 다대일 관계 @ManyToOne, @JoinColumn 으로 그냥 셋팅하면 끝나는 문제인데

Member 테이블은 A DB에 있고 Order 테이블은 B DB에 있을 때

JPA상에서 서로를 참조 또는 Join 하는 방법이 궁금합니다.

질문이 좀 장황해서 이해가 되실지 모르겠지만...

답변 부탁드리겠습니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 태건님

DB가 분리되어 있기 때문에 JOIN이 안된다고 생각하시면 됩니다.

이 경우 선택할 수 있는 방법이 두가지가 있습니다.

주문입장이라고 생각할 때

1. API를 호출해서 회원 정보를 조회한다.

2. 주문에 꼭 필요한 회원 데이터를 실시간으로 동기화 받에서 주문 DB에 저장해둔다. 데이터 동기화는 주로 이벤트 방식을 사용해서 동기화 합니다. 이 부분은 링크를 참고하시면 도움이 되실거에요.

배달의민족 마이크로서비스 여행기

여기서 2번 방법을 사용하면 JOIN을 할 수 있습니다.

감사합니다.