Skip to content

Micro service의 장애 회피를 위한 CircuitBreaker #60

@re-mora

Description

@re-mora

micro-services에 의해 하나의 시스템을 이루는 복잡한 환경에서
각각의 서비스에서 문제가 생겼을때의 추적과 처리 목적
전후 통신 구간에 대한 흐름 파악

Tace ID and Span ID

CircuitBreaker

  • 장애가 발생하는 서비스에 반복적인 호출이 되지 못하게 차단
  • 특정 서비스가 정상적으로 동작하지 않을 경우 다른 기능으로 대체 수행 -> 장애 회피

CircuitBreaker Status

  • OPEN : 장애회피
  • CLOSE : 시스템 정상

Spring 진영의 CircuitBreaker 제공 오픈소스

  • 과거 : netflix-hystirx -> 현재 업데이트 중단
  • 현재 : Resilience4j

Resilience4j

  • Fault tolerance를 제공하는 경량 라이브러리
  • Netflix Hystrix를 대체

필요 의존성

dependencies {
  implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'
}

Library

  • resilience4j-circuitbreaker : Circuit breaking
  • resilience4j-ratelimiter : Rate Limiting
  • resilience4j-bulkhead : Bulkheading
  • resilience4j-retry : Automatic retrying (sync and async)
  • resilience4j-timelimiter : Timeout handling
  • resilience4j-cache : Result caching

Reference URL

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions