
서킷브레이커의 실습 중, 추가하는 디펜던시의 목록입니다. 페일백 메서드 등을 테스트 하기 위해 추가하는 것으로 보이는데, 기존의 spring boot 프로젝트에서 추가하지 않았던 디펜던시가 있어, 각각의 기능을 정리해 두려고 합니다.
역할:
Spring Boot Actuator는 애플리케이션의 모니터링과 관리를 지원하는 내장 (또는 사용자 정의) 엔드포인트를 제공합니다. 애플리케이션의 상태, 메트릭, 세션 등을 모니터링하고 관리할 수 있습니다.
주요 기능:
역할:
Prometheus는 인메모리 시계열 데이터베이스로, Micrometer 메트릭을 Prometheus 포맷으로 노출시킵니다. Prometheus는 간단한 내장 UI, 사용자 정의 쿼리 언어, 수학 연산 기능을 제공하여 메트릭 데이터를 효과적으로 수집하고 분석할 수 있습니다.
주요 기능:
역할:
Resilience4j는 서킷 브레이커 패턴을 포함하여 다양한 회복 탄력성 패턴(Circuit Breaker, Rate Limiter, Retry, Bulkhead 등)을 구현하기 위한 라이브러리입니다.
이미지의 starter에서는 resilience4j 디펜던시를 추가하지 않았습니다. 스프링 이니셜라이저(스타터)에서 추가하면 org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j가 추가됩니다. 이는 추상화 계층을 통해 Resilience4j를 사용하는데 우리는 직접 resilience4j를 사용하기 위해 build.gradle에 io.github.resilience4j:resilience4j-spring-boot3:2.2.0를 추가하겠습니다.
build.gradle의 dependencies에 다음을 추가합니다.
implementation 'io.github.resilience4j:resilience4j-spring-boot3:2.2.0'
서킷 브레이커 패턴은 마이크로서비스 아키텍처에서 장애 복구 메커니즘으로 사용됩니다. 위의 디펜던시들은 서킷 브레이커 패턴을 구현하고 모니터링하는 데 도움이 되는 도구와 라이브러리를 제공합니다. 예를 들어:
역할:
Lombok은 Java 애노테이션 라이브러리로, 보일러플레이트 코드를 줄이는 데 도움이 됩니다. 예를 들어, Getter, Setter, Constructor, Equals, HashCode 등의 메서드를 자동으로 생성해줍니다.
주요 애노테이션:
@Getter / @Setter: 자동으로 getter와 setter 메서드를 생성.@ToString: 자동으로 toString 메서드를 생성.@EqualsAndHashCode: 자동으로 equals와 hashCode 메서드를 생성.@NoArgsConstructor / @AllArgsConstructor: 자동으로 생성자를 생성.역할:
Spring Web은 웹 애플리케이션, 특히 RESTful 애플리케이션을 개발하기 위해 사용됩니다. Spring MVC (Model-View-Controller) 프레임워크를 기반으로 하고 있으며, Apache Tomcat을 기본 임베디드 컨테이너로 사용합니다.
주요 기능: