작성
·
588
1
라운드로빈에서 커스텀한 전략으로 바꾸고 싶습니다.
답변 1
2
안녕하세요, 이도원입니다.
Spring Cloud Loadbalancer에서는 round-robin과 random 방식을 지원합니다. 말씀하신 것 처럼 가중치나 하드웨어 리소스에 대한 조건으로 분산하는 것은 지원되지 않는 것으로 알고 있습니다.
기본 정책인 round-robin 말고 random 방식을 사용하시려면 다음과 같은 빈을 등록하시면 됩니다.
@Configuration
public class LoadBalancingConfiguration {
@Bean
public ReactorLoadBalancer<ServiceInstance> reactorServiceInstanceLoadBalancer(Environment environment,
LoadBalancerClientFactory loadBalancerClientFactory) {
String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
return new RandomLoadBalancer(
loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
}
}
다음 강의로 준비 중인 "MSA 구성요소와 패턴"에서는 다른 제품의 Service Discovery, Gateway, Load Balancer 를 사용하는 애플리케이션을 구축하려고 합니다.
감사합니다.