스프링 클라우드 서킷 브레이커 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
스프링 어플리케이션에 Spring Retry를 사용하면 재시도 로직을 선언만으로 추가할 수 있다. 이 프로젝트 하위에는 서킷 브레이커 기능을 구현한 로직이 포함돼 있다. Spring Retry는 자체 CircuitBreakerRetryPolicy
와 stateful retry를 조합해서 서킷 브레이커 구현체를 제공한다. Spring Retry를 사용해 생성한 모든 서킷 브레이커는 CircuitBreakerRetryPolicy
와 DefaultRetryState
를 통해 생성된다. 이 두 클래스는 SpringRetryConfigBuilder
로 구성할 수 있다.
2.1. Default Configuration
모든 서킷 브레이커에서 사용할 디폴트 설정을 만들고 싶다면 SpringRetryCircuitBreakerFactory
를 넘겨받는 Customize
빈을 만들어라. configureDefault
메소드를 통해 디폴트 설정을 제공할 수 있다.
@Bean
public Customizer<SpringRetryCircuitBreakerFactory> defaultCustomizer() {
return factory -> factory.configureDefault(id -> new SpringRetryConfigBuilder(id)
.retryPolicy(new TimeoutRetryPolicy()).build());
}
2.2. Specific Circuit Breaker Configuration
디폴트 설정을 제공할 때처럼 SpringRetryCircuitBreakerFactory
를 넘겨받는 Customize
빈을 생성하면 된다.
@Bean
public Customizer<SpringRetryCircuitBreakerFactory> slowCustomizer() {
return factory -> factory.configure(builder -> builder.retryPolicy(new SimpleRetryPolicy(1)).build(), "slow");
}
서킷 브레이커를 생성할 때 사용할 설정을 지정하는 것 말고도, 서킷 브레이커를 생성한 후 호출자에 반환하기 전에 커스텀할 수도 있다. 이땐 addRetryTemplateCustomizers
메소드를 사용하면 된다. RetryTemplate
에 이벤트 핸들러를 추가한다면 유용할 거다.
@Bean
public Customizer<SpringRetryCircuitBreakerFactory> slowCustomizer() {
return factory -> factory.addRetryTemplateCustomizers(retryTemplate -> retryTemplate.registerListener(new RetryListener() {
@Override
public <T, E extends Throwable> boolean open(RetryContext context, RetryCallback<T, E> callback) {
return false;
}
@Override
public <T, E extends Throwable> void close(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) {
}
@Override
public <T, E extends Throwable> void onError(RetryContext context, RetryCallback<T, E> callback, Throwable throwable) {
}
}));
}
Next :Building
스프링 클라우드 소스 코드를 빌드하기 위한 기본 가이드 한글 번역
전체 목차는 여기에 있습니다.