resilience4j 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
Circuit Breaking
http 클라이언트를 호출할 때 서킷 브레이커는 CircuitBreakerCallAdaptor
에 제공한 CircuitBreaker
인스턴스를 기반으로 동작한다.
// Create a CircuitBreaker
private final CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("testName");
// Create a retrofit instance with CircuitBreaker call adapter
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(CircuitBreakerCallAdapter.of(circuitBreaker))
.baseUrl("http://localhost:8080/")
.build();
// Get an instance of your service with circuit breaking built in.
RetrofitService service = retrofit.create(RetrofitService.class);
Timeouts
타임 아웃으로 서킷 브레이커를 트리거하려면 Retrofit.Builder
에 전달하는 OkHttpClient
인스턴스에 임계 시간을 설정해야 한다.
// Create a CircuitBreaker
private final CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("testName");
final long TIMEOUT = 300; // ms
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.readTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.build();
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(CircuitBreakerCallAdapter.of(circuitBreaker))
.baseUrl("http://localhost:8080/")
.client(client)
.build();
Error responses
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(CircuitBreakerCallAdapter.of(circuitBreaker, (r) -> r.code() < 500));
.baseUrl("http://localhost:8080/")
.build();
Rate Limiting
http 클라이언트를 호출할 때 속도 제한은 RateLimiterCallAdaptor
에 전달하는 설정을 기반으로 동작한다.
RateLimiter rateLimiter = RateLimiter.ofDefaults("testName");
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RateLimiterCallAdapter.of(rateLimiter))
.baseUrl("http://localhost:8080/")
.build();
RateLimiter에서 정의한 기간 내에 호출 수를 초과하면 HTTP 429 응답(too many requests)을 반환한다.
Next :RXJAVA2 Getting Started
RxJava2 전용 연산자를 제공하는 resilience4j-rxjava2 모듈 소개
전체 목차는 여기에 있습니다.