본문 바로가기

전체 글202

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.
마이크로서비스간에 데이터 동기화 - 3 데이터 동기화 Orders -> Catalogs Orders Service에 요청 된 주문의 수량 정보를 Catalogs Service에 반영 Orders Service에서 Kafka Topic으로 메시지 전송 -> Producer Catalogs Service에서 Kafka Topic에 전송 된 메시지 취득 -> Consumer 현재 각 서비스는 독립적인 DB를 가지고 있음 독립적인 DB들의 동기화를 위해 Kafka 를 이용 Kafka topic에 메시지를 보내 동기화작업을 진행 Order(Producer) 설정 , Catalog(Consumer) 설정 Catalog-Service build.gradle - spring-kafka 추가 Message Queuing 과 관련된 패키지, 클래스 생성 Kaf.. 2021. 9. 8.
마이크로서비스간에 데이터 동기화 - 2 Apache Kafka Apache Software Foundation의 Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트 Open Source Message broker Project 링크드인(Linked-in)에서 개발, 2011년 오픈 소스화 2014년 11월 링크드인에서 Kafka를 개발하던 엔지니어들이 Kafka개발에 집중하기 위해 Confluent라는 회사 창립 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공 Apple, Netflix, Shopify, Yelp, Kakao, New York Times, Cisco, Ebay, Paypal, Hyperledger Fabric, Uber,Salesforce.com 등이 사용 Kafka가 개발되기.. 2021. 9. 8.