본문 바로가기

FrameWork/Spring Cloud19

SpringBoot WarmUp MSA 환경에서 Docker Swarm 을 통해 올리는 프로젝트들은 healthy가 뜨더라도 서비스가 정상 가동하는데 몇번의 request(직접 접속해서 새로고침)가 필요하는것에 불편함을 느껴서 찾아본 방법입니다. 저희 서비스에서는 JWT 및 Security 이슈로인해 적용하지 못했으나 WarmUp을 해보시고 싶으시면 아래 3가지 방법을 통해 가능합니다!!! Zuul Spring Cloud Netflix Service Discovery is one of the key tenets of a microservice based architecture. Trying to hand configure each client or some form of convention can be very difficult to .. 2022. 6. 26.
Prometheus + Grafana Prometheus Metrics를 수집하고 모니터링 및 알람에 사용되는 오픈소스 애플리케이션 2016년부터 CNCF에서 관리되는 2번째 공식 프로젝트 Level DB -> Time Series Database(TSDB) Pull 방식의 구조와 다양한 Metric Exporter 제공 시계열 DB에 Metrics 저장 -> 조회 가능(Query) Grafana 데이터 시각화, 모니터링 및 분석을 위한 오픈소스 애플리케이션 시계열 데이터를 시각화하기 위한 대시보드 제공 Prometheus 설치, 설정 설치 https://prometheus.io/download/ prometheus.yml 파일 수정 targer 지정 metircs_path를 통해 metrics를 가져옴 targets은 gateway를 통해.. 2021. 9. 18.
Micrometer Turbine Server 마이크로서비스에 설치된 Hystrix 클라이언트의 스트림을 통합 마이크로서비스에서 생성되는 Hystrix 클라이언트 스트림 메시지를 터빈 서버로 수집 Hystrix Hystrix 클라이언트에서 생성하는 스트림을 시각화 Web Dashboard (2020 버전 이전) Hystrix Dashboard / Turbine -> (2020 버전 이후) Micrometer + monitoring system Micrometer http://micrometer.io JVM기반의 애플리케이션의 Metrics 제공 Spring Framework 5, Spring Boot 2 부터 Spring의 Metrics 처리 Prometheus등의 다양한 모니터링 시스템 지원 Timer 짧은 지연 시간, .. 2021. 9. 17.
Microservice 분산 추적 Zipkin https://zipkin.io/ Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 (오픈 소스) Google Drapper에서 발전하였으며, 분산환경에서의 시스템 병목 현상 파악 Collector, Query Service, Databasem WebUI로 구성 Span 하나의 요청에 사용되는 작업의 단위 64 bit unique ID Trace 트리 구조로 이뤄진 Span 셋 하나의 요청에 대한 같은 Trace ID 발급 Spring Cloud Sleuth 스프링 부트 애플리케이션을 Zipkin과 연동 요청 값에 따른 Trace ID, Span ID 부여 Trace와 Span Ids를 로그에 추가 가능 servlet filter rest template sche.. 2021. 9. 12.
Microservice에 Circuitbreaker 적용 orderservice를 기동하지 않고 order-service 호출하고 결과 Resilience4j 주입 ErrorDecoder 사용부분을 CircuitBreaker로 수정 user-service에서 order-service를 사용하는 controller 호출 order-service외의 정보는 표시됨 Circuitbreaker Config 클래스 생성 Resilience4jConfig class 생성 package com.example.userservice.config; import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig; import io.github.resilience4j.timelimiter.TimeLimiterConfig; im.. 2021. 9. 11.
장애 처리와 Microservice 분산 추적 - 1 MicroService 통신 시 연쇄 오류 CircuitBreaker(장애 회피) closed -> 아무 문제없이 사용 가능한 상태 open -> 문제가 생겨 사용할 수 없는 상태 Spring Cloud Netflix Hystrix spring cloud 2020 이전 버전에서 사용됨(더이상 개발 되지 않는 상태) Resilience4j fault tolerance - 서비스 에러가 발생 했을 때 정상적인 서비스처럼 가용할 수 있는 능력 Resilience4j -CircuitBreaker Customize CircuitBreakerFactory -> Resilience4jCircuitBreakerFactory MicroSerivce 분산추적 Zipkin 2021. 9. 11.