Spring Boot 7

[MSA] Prometheus, Grafana 란? Grafana연동Example

Prometheus Metrics를 수집하고 모니터링에 사용되는 오픈소스 애플리케이션 시계열 데이터베이스에 Metrics를 저장하고 조회 가능 https://prometheus.io/ Prometheus - Monitoring system & time series database An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach. prometheus.io prometheus.yml target 정보 추가 job_name : 이름 설정 scrape_interval : 수집 데이터 간격 시간 설..

MSA 2023.05.16

[MSA] Spring Boot - Zipkin 이란? Spring Cloud Sleuth Example

https://zipkin.io/ OpenZipkin · A distributed tracing system Zipkin Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in service architectures. Features include both the collection and lookup of this data. If you have a trace ID in a log file, you can jump di zipkin.io zipkin Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 분산환경에서의 시스템 병목 형상 파..

MSA 2023.05.14

[MSA] Spring Boot - CricuitBreaker란? Resilience4J example

CircuitBreak 장애가 발생하는 서비스에 반복적인 호출이 되지 못하게 차단 다른 서비스로 대체 수행 의존성 주입 (build.gradle) dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j' ... } CircuitBreaker 설정 파일 (Default 설정 있어서 Custom 하게 사용할 경우만 생성) CircuitBreakerConfig failureRateThreshold CirucitBreaker open 결정 횟수 default : 50 waitDurationInOpenState CircuitBreak를 open 한 상태 유지하는 지속시간, 이후에는..

MSA 2023.05.13

[MSA] Spring Boot - Kafka Consumer, Producer Example

의존성 주입 (build.gradle) dependencies { ... implementation 'org.springframework.kafka:spring-kafka:2.8.0' } Kafka Consumer 설정 파일 ConsumerFactorcy - Topic에 접속에 필요한 정보 ConcurrentKafkaListenerContainerFactory - Topic 에 변경사할을 리스닝하는 리스너 package com.gugbab.gugbabservices.messagequeue; import ... @EnableKafka @Configuration public class KafkaConsumerConfig { Environment env; @Autowired public KafkaConsume..

MSA 2023.05.10

[MSA] Spring Boot - Feign Client 란? Rest Api 호출

Feign Client Netfix에서 개발된 Http client binder이다. 간편하게 Rest Api를 호출할 수 있다. 의존성 주입 (build.gradle) dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' ... } Applicatoin - 어노테이션 등록 @EnableFeignClients 등록 import ... @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class GugbabVocaServerApplication { ... } Feign Client - 인터페이스 생성 @FeignClien..

MSA 2023.04.24

[MSA] Spring Boot - RestTemplate 란? 사용

RestTemplate Spring에서 지원하는 간편하게 Rest API를 호출할 수 있게 해주는 클래스 Application - Bean 등록 @LoadBalanced // 마이크로 서비스 이름으로 찾을 수 있게 해 줌 package com.gugbab.gugbabservices; import ... @SpringBootApplication @EnableDiscoveryClient public class GugbabServicesApplication { ... @Bean @LoadBalanced public RestTemplate getRestTemplate(){ return new RestTemplate(); } } RestTemplate 사용 예시 public class UserServicesIm..

MSA 2023.04.23