더북(TheBook)

이 코드는 이전 예제 코드와 다소 비슷하게 보이지만 두 가지 큰 차이점이 있다. 첫째, 스프링 클라우드 Discovery Client가 없어졌다. 둘째, restTemplate.exchange() 호출에 사용된 URL이 이상하게 보일 것이다.

restTemplate.exchange(
    "http://organization-service/v1/organization/{organizationId}",
    HttpMethod.GET, null, Organization.class, organizationId);

URL에서 서버 이름은 유레카에 조직 서비스를 등록할 때 사용된 조직 서비스 키의 애플리케이션 ID와 일치한다.

http://organization-service/v1/organization/{organizationId}

로드 밸런서를 지원하는 RestTemplate 클래스는 전달된 URL을 파싱하고 서버 이름으로 전달된 것을 키로 사용하여 서비스의 인스턴스를 로드 밸런서에 쿼리한다. 실제 서비스 위치와 포트는 개발자에게 완전히 추상화된다. 게다가 RestTemplate 클래스를 사용하면 스프링 클라우드 로드 밸런서는 서비스 인스턴스에 대한 모든 요청을 라운드 로빈 방식으로 부하 분산한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.