Mingyum-Kim / Iamhere

😉 국내 거주 외국인 매칭 서비스 "I-am-here" 😉
1 stars 0 forks source link

[Feature] 여러 모듈 간의 통신을 위한 OpenFeign 설정하기 #25

Closed Mingyum-Kim closed 1 year ago

Mingyum-Kim commented 1 year ago

🖤 설명

MSA 구조에서 Post의 작성자로 Member의 정보를 저장하기 위해 엔드포인트를 호출하는 OpenFeign을 설정한다.

⭐체크리스트

❗ 주의 사항

Mingyum-Kim commented 1 year ago

OpenFeign을 이용해서 여러 서비스 간의 통신을 수행하기 위해서는 하위 모듈 여러 개를 꼭 실행하고 있어야 하는 건가 ? 루트 프로젝트 Application 하나만을 실행하는 것으로 하위 모듈을 모두 활성화 하는것은 불가능한가 ?

MSA에서 루트 프로젝트는 게이트 웨이의 역할을 하고, 클라이언트 요청을 적합한 하위 서비스로 라우팅한다. 루트 프로젝트를 @EnableEurekaClient 을 사용해 유레카 클라이언트로 등록하고, 하위 모듈을 @ComponentScan을 통해 활성화시킬 수 있다.

@SpringBootApplication
@EnableEurekaClient
@ComponentScan(basePackages = {"com.example.submodule1", "com.example.submodule2"})
public class RootApplication {

    public static void main(String[] args) {
        SpringApplication.run(RootApplication.class, args);
    }
}
Mingyum-Kim commented 1 year ago

새로 알게 된 점 (1) Eureka Server은 새로 등록한 Client의 정보를 입수하려면 rerun 해야한다. (2) Eureka Server에 Client를 등록하기 위해서는 Application을 모두 켜야한다. 하위 모듈도 포함이다. (3) 한 번 등록한 Client가 여전히 Server 내에 있고, Eureka Client 설정 정보를 없앤 상태에서 Client를 실행하면 오류가 발생한다.