본문 바로가기

resilience4j3

[MSA] spring boot에서 resilience4j 사용해보자 - RateLimiter, BulkHead, TimeLimiter 편 안녕하세요. 이번 포스팅에서는 spring boot 환경에서 resilience4j의 ratelimiter와 bulkhead, 그리고 timelimiter 패턴에 대해서 실습해보는 시간을 가져보도록 하겠습니다. RateLimiter rateLimiter는 단위 시간동안 얼마만큼의 실행을 허용할 것인지 제한할 수 있는 메커니즘을 말합니다. resiliece4j에서는 단순하게 요청의 숫자를 이용하여 제한(limit)할 수 있으며 또는 제한에 걸린 요청은 queue를 생성하여 이후에 처리하거나 하는 방법도 제공합니다. 위 이미지는 공식 docs에서 가져온 이미지입니다. rateLimiter가 어떻게 동작하는지 매커니즘을 잘 나타내고 있습니다. System.nanoTime()을 JVM 시작과 함께 일정한 단위 .. 2021. 12. 15.
[MSA] spring boot에서 resilience4j 사용해보자 - Retry, CircuitBreaker 편 안녕하세요. 이번 포스팅에서는 resilience4j를 실제로 spring boot 환경에서 사용해보는 방법에 대해서 알아보는 시간을 가져보도록 하겠습니다. 환경 먼저 오늘 실습에 사용된 환경은 아래와 같습니다. Java 11 Spring Boot 2.5.5 resilience4j 1.7.1 Spring Boot 기본적으로 resilience4j는 Spring Boot 전용이 아닙니다. 다양한 프레임워크에서 돌아갈 수 있도록 모듈이 준비되어있는데요. 그래서 Spring Boot에서 지원하는 properties 또는 Bean을 활용한 설정을 하기위해서는 Spring Boot 전용 모듈을 함께 추가해 주어야합니다. 추가해주어야하는 모듈은 아래와 같습니다. dependencies { compile "io.gi.. 2021. 12. 12.
[MSA] Hystrix말고 resilience4j ? 안녕하세요. 오늘은 분산 시스템에서 장애 상황을 견딜 수 있게 하는 Hystrix가 maintenance mode에 들어감에 따라 대체로 떠올랐던 resilience4j에 대해서 알아보는 시간을 가져보도록하겠습니다. 이번 시간에는 Hystrix 프로젝트의 현재 상태와 resilience에서 제공하는 것은 어떤것이 있는지에 대해서 알아보고 다음시간에는 spring boot 환경에서 실습을 진행할 수 있도록 하겠습니다. 먼저 Hystirx와 fallback tolerance에 대해서 잘 모르신다면 이전에 제가 올렸던 [MSA] Spring Cloud Hystrix - 개념편 포스팅을 먼저 참고해주시기 바랍니다. Hystrix의 현재 상태(Status) Hystirx는 2017년 7월 13일 Version 1.. 2021. 12. 10.