본문 바로가기

MSA23

폴백(Fallback) 폴백(Fallback)은 Resilience4j에서 복원력을 제공하기 위한 핵심 메커니즘 중 하나입니다. 폴백은 주요 작업(예: API 호출, 데이터베이스 쿼리 등)이 실패하거나 예외가 발생했을 때 대체 동작을 정의하여 서비스의 가용성을 유지하는 데 사용됩니다.1. 폴백의 주요 특징대체 동작 제공: 특정 작업이 실패했을 때 예외를 던지지 않고 미리 정의된 대체 로직을 실행합니다.최종 방어선: 회로차단기, 재시도, 벌크헤드 등 모든 복원력 기능을 통과했음에도 실패했을 때 작동합니다.사용자 정의 로직: 기본값 반환, 캐시된 데이터 제공, 알림 전송 등 사용자 정의 로직을 구현할 수 있습니다.2. 폴백의 동작 방식서비스 호출:특정 메서드 호출 시 장애가 발생하거나 예외가 발생합니다.Resilience4j 동작.. 2024. 12. 13.
Resilience4j Resilience4j란? Resilience4j는 Spring Boot 애플리케이션에서 회복력 있는 마이크로서비스를 구축하기 위해 설계된 경량 라이브러리입니다. Circuit Breaker, Rate Limiter, Retry, Bulkhead, Time Limiter와 같은 주요 패턴을 제공합니다. 각 패턴은 별도로 구현되며, 원하는 모듈만 선택해서 사용할 수 있는 장점이 있습니다. 주요 기능Circuit Breaker (회로 차단기)서비스 호출 실패가 반복되면 회로를 열어 추가 실패를 방지하고, 일정 시간이 지나면 재시도를 허용합니다.Rate Limiter (속도 제한기)호출 횟수를 제한하여 서비스 과부하를 방지합니다.Retry (재시도)실패한 요청을 재시도하여 잠재적 네트워크 문제를 해결합니다.B.. 2024. 12. 13.
allow-bean-definition-overriding allow-bean-definition-overriding는 Spring Framework에서 사용되는 설정으로, 빈 정의 덮어쓰기를 허용할지 여부를 설정합니다. 이 설정은 주로 Spring 애플리케이션의 application.properties 또는 application.yml 파일에서 구성되며, 여러 @Bean 정의가 있을 때 하나의 빈 정의가 다른 빈 정의를 덮어쓰는 것을 허용할지 여부를 제어합니다.1. 기본 동작 (기본값)기본적으로, Spring은 빈 정의 덮어쓰기를 허용하지 않습니다. 즉, 같은 이름을 가진 두 개 이상의 빈이 정의되면 애플리케이션이 시작될 때 예외가 발생합니다. 이는 빈 이름의 충돌을 방지하고 의도치 않은 동작을 막기 위한 안전 장치입니다.2. allow-bean-definit.. 2024. 12. 11.
@ConfigurationProperties @ConfigurationProperties는 Spring Framework에서 외부 설정을 Java 객체에 매핑하기 위해 사용하는 어노테이션입니다. 이 어노테이션을 사용하면 프로퍼티 파일(application.properties, application.yml 등) 또는 환경 변수에서 값을 읽어와 자동으로 Java 객체에 매핑할 수 있습니다. 이를 통해 설정값을 객체지향적으로 다룰 수 있게 되어, 설정값의 변경이나 추가가 간편해집니다.1. @ConfigurationProperties 기본 개념@ConfigurationProperties는 주로 외부 설정을 객체에 바인딩하기 위해 사용됩니다. 이 어노테이션을 사용하면, 프로퍼티 파일(application.properties 또는 application.yml.. 2024. 12. 11.
리프레시 스코프(Refresh Scope) 리프레시 스코프(Refresh Scope)는 Spring Cloud에서 사용되는 개념으로, Spring Cloud Config와 관련이 있습니다. 주로 동적 속성 갱신에 사용되며, 애플리케이션이 실행 중에 외부 설정 값을 자동으로 갱신할 수 있도록 도와주는 기능입니다.1. Spring Cloud ConfigSpring Cloud Config는 분산 시스템에서 중앙 집중식 설정 관리를 지원하는 Spring 프로젝트입니다.애플리케이션의 설정 정보를 Git 또는 파일 시스템 등에 저장하고, 애플리케이션이 실행 중에도 이 설정을 동적으로 변경할 수 있습니다.2. 리프레시 스코프(Refresh Scope)리프레시 스코프는 설정 값을 변경했을 때, 애플리케이션 컨텍스트의 일부 빈을 동적으로 갱신할 수 있는 기능을 .. 2024. 12. 11.
HashiCorp의 Vault (+raft) HashiCorp Vault는 시크릿 관리 시스템(secret management system)으로, 주로 애플리케이션, 시스템, 서비스에서 사용하는 민감한 정보(예: API 키, 비밀번호, 인증 토큰 등)를 안전하게 저장하고 관리하는 데 사용됩니다. 또한, Vault는 암호화, 인증, 액세스 제어 등의 기능을 제공하여, 민감한 정보를 보호하고 이를 관리하는 복잡한 작업을 간소화합니다.주요 기능과 특징시크릿 관리 (Secret Management):Vault는 데이터를 안전하게 저장하고 필요한 서비스나 애플리케이션에만 접근을 허용합니다. 이를 통해 민감한 정보를 안전하게 저장하고 조회할 수 있습니다.예를 들어, 비밀번호, API 키, 데이터베이스 자격 증명 등을 저장하고 필요할 때만 안전하게 사용할 수 .. 2024. 12. 11.