본문 바로가기

MSA

(5)
분산 추적(Spring Cloud Sleuth) 및 로깅(Zipkin) 이론 및 실습 이론분산 추적이란분산 추적은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링하는 방법입니다.각 서비스의 호출 관계와 성능을 시각화하여 문제를 진단하고 해결할 수 있도록 돕습니다.주요 개념: 트레이스(Trace), 스팬(Span), 컨텍스트(Context)트레이스(Trace) : 트레이스는 하나의 요청이 시작부터 끝까지 각 서비스를 거치는 전체 흐름을 나타냅니다하나의 트레이스는 여러 개의 스팬으로 구성됩니다분산 시스템에서 클라이언트의 요청이 여러 서비스로 전달될 때, 각 서비스 호출이 트레이스의 일부로 기록됩니다트레이스 ID는 각 스팬에 공통으로 부여되며, 이를 통해 전체 요청 흐름을 추적할 수 있습니다스팬(Span) : 스팬은 분산 추적에서 가장 작은 단위로, 특정 서비스 내에서의 개별 작업 ..
2024-08-06(TIL) - 게이트웨이 API 게이트웨이란?API 게이트웨이는 클라이언트의 요청을 받아 백엔드 서비스로 라우팅하고, 다양한 부가 기능을 제공하는 중간 서버입니다.클라이언트와 서비스 간의 단일 진입점 역할을 하며, 보안, 로깅, 모니터링, 요청 필터링 등을 처리합니다. API 게이트웨이의 주요 기능라우팅: 클라이언트 요청을 적절한 서비스로 전달인증 및 권한 부여: 요청의 인증 및 권한을 검증로드 밸런싱: 여러 서비스 인스턴스 간의 부하 분산모니터링 및 로깅: 요청 및 응답을 로깅하고 모니터링요청 및 응답 변환: 요청과 응답을 변환하거나 필터링 라우팅 설정server: port: 19091spring: application: name: gateway-service main: web-application-type: ..
2024-08-05(TIL) - 서킷브레이커 서킷 브레이커란?서킷 브레이커는 마이크로서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 패턴외부 서비스 호출 실패 시 빠른 실패를 통해 장애를 격리하고, 시스템의 다른 부분에 영향을 주지 않도록 합니다.상태 변화: 클로즈드 -> 오픈 -> 하프-오픈 Resilience4j의 주요 특징Fallback: 호출 실패 시 대체 로직을 제공하여 시스템 안정성 확보모니터링: 서킷 브레이커 상태를 모니터링하고 관리할 수 있는 다양한 도구 제공 Resilience4j Dependencies 설정- 스프링에서 제공하는 라이브러리는 구현체만 들어오기 때문에 추가하지 않을 것이다.- aop 도 함께 추가하여야 한다.  Resilience4j 설정 파일  Fallback 메커니즘각 서킷 브레이커 인스턴스..
2024-08-02(TIL) - Eureka, 로드밸런싱 복습 Eureka넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장여러 인스턴스를 지원하여 고가용성을 유지할 수 있음Eureka 서버 설정spring: application: name: serverserver: port: 19090eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:19090/eureka/ instance: hostname: localh..
2024-08-01(TIL) - Spring Cloud 주요 기능 Spring Cloud 주요 모듈서비스 등록 및 디스커버리: Eureka, Consul, Zookeeper로드 밸런싱: Ribbon, Spring Cloud LoadBalancer서킷 브레이커: Hystrix, Resilience4jAPI 게이트웨이: Zuul, Spring Cloud Gateway구성 관리: Spring Cloud Config분산 추적: Spring Cloud Sleuth, Zipkin메시징: Spring Cloud StreamEureka넷플릭스가 개발한 서비스 디스커버리 서버, MSA에서 각 서비스의 위치를 동적으로 관리서비스 레지스트리 : 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소헬스 체크(Health Check) : 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성 보장..