6.5.2 로드 밸런서를 지원하는 스프링 REST 템플릿으로 서비스 호출

    다음으로 로드 밸런서(Spring Cloud Load Balancer)를 지원하는 REST 템플릿의 사용 예를 살펴볼 것이다. 이 방법은 스프링을 통해 로드 밸런서와 상호 작용할 수 있는 더 일반적인 메커니즘 중 하나다. 로드 밸런서를 지원하는 RestTemplate 클래스를 사용하려면 스프링 클라우드의 @LoadBalanced 애너테이션으로 RestTemplate(bean)을 정의해야 한다.

    라이선싱 서비스에서 RestTemplate 빈을 생성하는 데 사용될 메서드는 src/main/java/com/optimagrowth/license/LicenseServiceApplication.java 파일에 있다. 다음 코드에서 로드 밸런서를 지원하는 스프링 RestTemplate 빈을 생성하는 getRestTemplate() 메서드를 볼 수 있다.

    코드 6-13 RestTemplate( ) 생성자 메서드를 정의하고 애너테이션 추가하기

    // 이해를 돕기 위해 대부분의 import 문은 생략
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    @SpringBootApplication
    @RefreshScope
    public class LicenseServiceApplication {
        public static void main(String[] args) {
            SpringApplication.run(LicenseServiceApplication.class, args);
        }
    
        @LoadBalanced  
        @Bean
        public RestTemplate getRestTemplate() {
            return new RestTemplate();
        }
    }

    ➊ 조직 서비스의 모든 인스턴스를 얻는다.

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