스프링 클라우드 서킷 브레이커 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
스프링 어플리케이션에 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
스프링 클라우드 소스 코드를 빌드하기 위한 기본 가이드 한글 번역
전체 목차는 여기에 있습니다.