Java/Spring-msa

    [스프링-msa] 프로메테우스 , 그라파나 docker 연동

    [스프링-msa] 프로메테우스 , 그라파나 docker 연동

    먼저 docker-compose.yml 작성로컬의 prometheus.yml을 볼륨마운트를 통해 도커에 넣어줘야 한다.prometheus: image: prom/prometheus container_name: prometheus volumes: - D:\JavaProject\monitor:/etc/prometheus ports: - 9090:9090 restart: always networks: my-network: ipv4_address: 172.18.0.106 grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000 res..

    [스프링 msa] zipkin을 이용한 msa 분산추적

    [스프링 msa] zipkin을 이용한 msa 분산추적

    spring 3.0 이후로는 brave를 사용해야함의존성 추가implementation 'io.zipkin.reporter2:zipkin-reporter-brave'implementation 'org.springframework.boot:spring-boot-starter-actuator'implementation 'io.micrometer:micrometer-tracing-bridge-brave'implementation 'io.github.openfeign:feign-micrometer'이걸해야 요청마다 동일한 TraceId 부여@Configurationpublic class MonitorConfig { @Bean public Capability capability(final MeterRe..

    [스프링 msa] 서킷브레이커를 이용한 장애전파 차단

    [스프링 msa] 서킷브레이커를 이용한 장애전파 차단

    * 문제order-service를 끄고 user-service에 요청시 500 error가 발생* 해결서킷브레이커 도입@Configurationpublic class Resilience4JConfig { @Bean public Customizer globalCustomConfiguration() { CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom() .failureRateThreshold(4) // 4번 이상 실패하면 .waitDurationInOpenState(Duration.ofMillis(1000)) // 1초 동안 ..

    [스프링 msa] msa 예외처리 // errorDecoder 이용

    [스프링 msa] msa 예외처리 // errorDecoder 이용

    * 목적order-service에 문제가 있어도 user-service는 정상작동해야 한다.일부러 error 만들어보기@FeignClient(name = "order-service")public interface OrderServiceClient { @GetMapping("{userId}/orders_ng") //api gateway를 거치지 않음 List getOrders(@PathVariable String userId);}error msg를 하드코딩 하는 대신 yml 파일 에 값을 넣어두기error msg 수정이 필요할때 1곳만 수정하면 된다!!@Component@RequiredArgsConstructorpublic class FeignErrorDecoder implements Error..