서킷브레이커 2

CircuitBreaker 로 예방하는 장애 전파(2)

이번 포스팅에서는 지난 포스팅에 이어 CircuitBreaker를 실제로 구현하는 것에 대해 알아보도록 하겠습니다. 📌CircuitBreaker를 지원하는 라이브러리의 종류 1. Netflix Hystrix Netflix 에서 개발한 라이브러리로 MSA 환경에서 서비스 간 통신이 원활하지 않을 경우 각 서비스가 장애 내성과 지연 내성을 갖게 하는 라이브러리이지만 현재는 deprecated 된 상태로 더 이상의 업데이트가 없으며 공식 문서에서도 Resilience4j 의 사용을 권장하고 있습니다. 2. Resilience4j Netflix Hystrix로부터 영감을 받아 개발된 Fault Tolerance 라이브러리 Java 전용으로 개발된 라이브러리 입니다. 📌CircuitBreaker의 코어 모듈 Re..

BackEnd/SpringBoot 2023.12.12

CircuitBreaker 로 예방하는 장애 전파(1)

📌 들어가며 소프트웨어는 모두 실패한다 - 버너 보겔스(아마존 부사장) 아무리 열심히 설계하여 개발하고 QA를 진행한다 하더라도 대고객 시스템의 경우 혹은 대고객이 아니더라도 예상치 못한 장애를 마주하는 경우가 발생합니다. 여러 개의 작은 독립적인 마이크로서비스로 분할하는 아키텍처 패턴이 많아지는 요즘, 단일 서브 도메인의 장애가 전체 시스템에 영향을 줄 수 있어 예상치 못한 장애 상황이 발생할 수 있습니다. 이렇게만 보면 MSA 아키텍처로 설계하는 것 자체가 잘못된 것은 아닐까 하는 생각이 들 수 있습니다. 하지만 이는 '완벽한 시스템을 만들기보다, 실패에 유연하고 빠르게 대응 가능한 시스템을 설계해야 한다.' 라는 의미로 해석할 수도 있습니다. 따라서 MSA 환경에서는 단일 서브 도메인(마이크로서비스..

BackEnd/SpringBoot 2023.12.10