
먼저 글 작성에 앞서 해당 시리즈는 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 참고하여 필요한 내용들을 정리한 것임을 밝힙니다.
마이크로서비스로 백엔드 아키텍처를 구성하게 되면, A라는 서비스에서 B서비스의 API가 필요한 경우가 생긴다.
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
private final RestTemplate restTemplate;
@GetMapping("/second-service/port")
public String getSecondServicePort(){
String uri = env.getProperty("second-service.url");
System.out.println("uri = " + uri):
ResponseEntity<String> response = restTemplate.exchang(uri, HttpMethod.GET, null, String.class);
return response.getBody();
}
기존 방식으로 하게 되면, 요청 URI가 변경되면 일일히 변경을 해 주어야 하기 때문에 번잡하다.
따라서 이를 해결하기 위해 Eureka에 등록된 마이크로서비스의 이름으로 호출이 가능하다.
- 추가 사항
- RestTemplate 빈에 @LoadBalanced 어노테이션을 추가해주면, Eureka 서비스에 등록된 마이크로 서비스 이름으로 호출이 가능하다.
- 기존 : http://localhost:8000/second-service/port
- 변경 : http://SECOND-SERVICE/port
다음 포스트에서는 마이크로 서비스간의 통신을 위한 다른 방식인 feignclient를 알아보도록 하겠다.