더북(TheBook)

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();
    }
}

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

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