본문 바로가기

빗썸 테크코스 아카데미/2주차(WebFlux)

(4)
Circuit Breaker - resilience4j Circuit Breaker 개별 모듈 장애로 인한 서비스 장애를 방지하기 위해 나온패턴이 서킷브레이커 전기 회로 차단기의 개념을 차용한 패턴으로 전기 흐름에 문제없으면 close 문제가 생기면 open하여 흐름을 차단 Circuit Breaker의 상태 정상 상태 : Closed 오류 상태 : Open 반열림 상태 : Half Open (일부 request만 실행해보면서 기능이 다시 정상적으로 동작하는지 확인하는 과정) 3가지 상태 전환 과정 Closed 상태 특정 모듈이 요청한 결과(성공/실패)를 기록. 실패 횟수(또는 시간)가 임계치에 도달했을시 Open 상태로 전환 Open 상태 지정된 시간만큼 open 상태를 유지하며 요청에 대해 지정된 결과를 응답한다.(예외를 던지거나 임시복구 데이터를 응답한..
WebFlux(User service 구현) 환경설정하기 사용 라이브러리 webflux actuator spring cloud eureka client : 지정 된 eureka server에 해당 서비스를 등록할것이므로 설정한다. h2 database : h2 내장 memory DB를 사용할것이다. r2dbc : jdbc가 아닌 r2dbc를 사용할것이다. H2 DB 설정하기(In Memory DB) build.gradle에 dependency를 걸어준다. 2개의 config파일을 생성해준다. 이후 h2-console을 사용하기 위한 port번호를 설정 한 후 실행하면 H2DB는 세팅이 완료된다.
Eureka Server Eureka Server란? Eureka는 Middle-tier server( 비즈니스 로직이 위치한 애플리케이션 서버단)의 로드밸런스와 Failover를 위해 서비스를 배치해주는 REST 기반 서비스이다. 이 서비스는 주로 AWS Cloud에서 사용되고, 이를 Eureka Server라 부른다. Eureka Client란? Java 기반 클라이언트 요소도 있는데, 서버와 상호작용을 더 쉽게 해주는 것을 Eureka Client라 부른다. 클라이언트도 Round-Robin 방식을 기본으로 사용하는 로드밸런스를 내장하고 있다. Netflix에서는, Eureka에서 기본 로드 밸런스 외에도 트래픽, 리소스 사용량, 에러 상황 요소에 따라 로드밸런스를 할 수 있도록 제공해주고 있다. Eureka Server의..
API Gateway Api Gateway Service 역할 사용자 라우팅 설정에 따라 각각 end point로 클라이언트 대신해서 요청하고 응답받으면 전달해주는 일종의 proxy기능을 수행한다. 사용 이유 MSA Architecture 구조내에서 Micro service들이 변경을 했을 경우 마이크로 서비스들은 독립적인 빌드, 배포 되는 구조이고 AWS를 사용할 경우, Scale Up이나 Scale Out을 할 경우 IP주소 나 도메인 주소 변경의 우려가 존재한다. 따라서 Micro Service의 주소에다 직접 요청을 하는 클라이언트 입장에서는 변경이 필요하다. 상기의 이유들로 인해서 하나의 진입점을 가진 Gateway가 필요하게 되고, 이 Gateway는 Micro Service에 요청되는 모든 정보들을 일괄적으로 처..