토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

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 모듈 소개

전체 목차는 여기에 있습니다.

<< >>

TOP