Server/Architecture

Server/Architecture

🎯 왜 OpenFeign과 Circuit Breaker를 함께 사용할까?

2025.09.12 - [Server/Architecture] - 🎯 Resilience4J 라이브러리의 개념과 Circuit Breaker의 동작 과정 🎯 Resilience4J 라이브러리의 개념과 Circuit Breaker의 동작 과정Resilience4j 란?fault tolerance (결함 허용) 라이브러리이다. 즉 오류나 장애가 발생해도 서비스가 중단되지 않게 안정적으로 도와주는 서비스이다. 이 기능을 구현하기 위한 여러 Resilience4j 모듈이 있mingyum119.tistory.com 여기서 어떻게 라이브러리의 목적이 무엇인지 알아보고, 이 목적을 구현하기 위한 여러 모듈 중 Circuit Breaker에 대해 알아보았다. 2025.09.12 - [Framework/Spring..

Server/Architecture

🎯 Resilience4J 라이브러리의 개념과 Circuit Breaker의 동작 과정

Resilience4j 란?fault tolerance (결함 허용) 라이브러리이다. 즉 오류나 장애가 발생해도 서비스가 중단되지 않게 안정적으로 도와주는 서비스이다. 이 기능을 구현하기 위한 여러 Resilience4j 모듈이 있다.장애가 전파되지 않도록 차단하는 CircuitBreaker실패 시 자동 재시작으로 장애 극복을 시도하는 Retry결과를 캐시해 장애가 나더라도 결과를 전달하게 하는 Cacjhe갑작스럽게 트래픽이 폭증한 상황에서 요청량을 제어하는 RateLimiter자원을 배분해서 장애가 나도 다른 서비스에서 작동하도록 하는 BulkHead응답시간 초과 시 타임아웃으로 지연 장애가 전파되지 않도록 하는 TimeLimiter 이 포스팅에서는 Circuit Breaker 모듈에 집중해서 알아보도..

Server/Architecture

Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (3)

2023.08.27 - [Server/Architecture] - Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) 시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따 mingyum119.tistory.com 2023.08.27 - [Server/Architecture] - Github Actions + Code De..

Server/Architecture

Github Actions + Code Deploy + S3 + NginX로 Spring Boot 블루/그린 무중단 배포 구현하기 (2)

2023.08.27 - [Server/Architecture] - Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1) 시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따 mingyum119.tistory.com 위 포스팅에 이어서, Github Actions 워크플로우를 실행하고 CodeDeploy, S3를 이용해 EC..

Server/Architecture

Github Actions + Code Deploy + S3 + NginX 로 Spring Boot 블루/그린 무중단 배포 구현하기 (1)

시스템 아키텍쳐 해당 프로젝트에서 사용한 시스템 아키텍쳐는 다음과 같다. 1. 개발자가 코드를 수정하고, 배포를 원하는 브랜치로 Github에 Push한다. 2. Github Actions에서 정해진 워크플로우에 따라 두 가지 작업을 수행한다. (1) CodeDeploy에 배포 요청을 보낸다. (2) Gradle 빌드를 수행한 후 생성된 jar 파일을 S3 버킷에 저장한다. 3. 배포 요청을 받게 되면, CodeDeploy Agent (배포 작업을 수행하는 프로그램) 가 EC2 서버 내에서 개발자가 직접 작성한 appspec.yml를 스캔 후 빌드 스크립트를 실행하게 된다. 4. 빌드 스크립트 내에서 두 개의 포트를 번갈아가며 스위칭하여, 블루/그린 배포를 수행한다. 이 결과 8081 포트가 작동 중일 ..

Server/Architecture

[MSA] 터빈 서버 (Turbine Server)로 Hystrix Client 메시지 수집하기

터빈 서버란 ? 마이크로서비스에 설치된 히스트릭스 (Hystrix) 클라이언트 스트림 메시지를 터빈 서버로 통합하여 관리한다. 히스트릭스 클라이언트 스트림이란, 마이크로서비스에 설치된 ‘히스트릭스 클라이언트’ 에서 서비스 처리 요청에 대한 결괏값을 스트림으로 전달해준다. 사용자는 이를 통해 서비스가 잘 돌아갔는 지 확인할 수 있게 된다. 터빈 서버 구축하기 터빈 서버를 마이크로서비스에 등록하기 위해서는, 먼저 터빈 서버를 생성하고 build.gradle에 아래 라이브러리를 추가해준다. implementation 'org.springframework.cloud:spring-cloud-starter-netflix-turbine' 터빈 서버의 application.yml을 보면 아래와 같다. server: p..

Server/Architecture

[MSA] Spring Cloud Config Server 구축 및 profiles 설정

설정 서버 (Config Server)란 ? 설정 서버는 각 Config Client들이 사용할 수 있는 설정 정보를 한 곳에 모아 저장한 Server이다. Spring Cloud Server의 역할 깃에 설정된 profile의 정보가 바뀌게 되어도 마이크로서비스의 재기동 없이 적용이 가능하다. Spring Config Client들에게 설정 정보를 뿌려서, Application의 외부 속성을 중앙 집중식 관리가 가능하도록 한다. 서버는 주로 마이크로서비스를 개발하는 개발서버와 운영 서버, 스테이지 서버, 테스트 서버로 분리된다. 이런 서버들의 포트와 IP주소는 각기 다른데, 환경 설정 정보를 소스로부터 분리하여 소스코드와의 결합도를 낮추는 역할을 하는 것이 설정 서버의 역할이다. 그렇다면 설정 서버에서..

Server/Architecture

[MSA] 유레카(Eureka)서버, 줄(Zuul) 서버 설정 및 구동하기

유레카 서버 (Eureka Server) 마이크로서비스의 기동 여부를 체크하고, 마이크로서비스가 등록되거나 삭제될 때 이에 대한 상태정보를 동적으로 감지하는 역할을 한다. 마이크로서비스는 기동되는 시점에 유레카 서버에게 이 정보를 전달한다. 유레카 서버는 유레카 클라이언트가 접속할 수 있는 defaultZone 서버 주소를 오픈한다 . server: port: 9091 spring: application: name: msa-architecture-eureka-server # 유레카 서버 이름 # Config server cloud: config: url: http://localhost:8888 name: msa-architecture-config-server # Eureka Standalone Serve..

MINGYUM
'Server/Architecture' 카테고리의 글 목록