본문 바로가기

Back-end/Spring Cloud (MSA)10

Spring Cloud (MSA) - 모니터링 (Actuator, Prometheus, Grafana) 개요 배포를 한 뒤에 내가 내가 배포한 서버가 잘 동작하는지 어떻게 동작하고 있는지 서버의 상태를 확인할 수가 없었습니다. 그래서 모니터링하는 기술들이 있었는데 적용해본 기술들은 다음과 같습니다,. Spring Actuator Prometheus Grafana 그라파나를 사용하기 위해서는 프로메테우스의 정보가 필요하고 프로메테우스를 사용하기 위해서는 /actuator/prometheus 와 같이 연결이 필요했습니다. 그래서 Spring Actuator, Prometheus, Grafana 순으로 적용시켜보았습니다. 환경 Win11 Spring boot 2.7.8 Docker Engine v20.10.21 Spring Actuator implementation 'org.springframework.boot.. 2023. 2. 16.
Spring Cloud (MSA) - 스프링부트 도커 이미지 생성 후 컨테이너 실행 도커 이미지 생성 예시1) 윈도우에서 테스트없이 빌드 : ./gradlew clean build -x test 이미지 생성 $ docker build -t llsrrll96/timedeal:timedeal-0.0.1-SNAPSHOT . 생성이 안될 경우 참고 윈도우에서 테스트없이 빌드 : ./gradlew clean build -x test 빌드를 해서 .jar 파일 생성 예시2) docker build -t docker.io/in28min/mmv2-currency-exchange-service:0.0.1-SNAPSHOT . 예시3) $ docker build -t chat:chat-0.0.1-SNAPSHOT . {이미지이름}:TAG 이미지 확인 docker images 또는 Docker Desktop .. 2023. 2. 1.
도커 설치 이미지 컨테이너 명령어 도커 설치 [Docker] Windows 도커 설치 Windows와 Docker 이번 글에서는 Windows 도커 설치하는 내용을 다룬다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. Linux 계열 이외의 운영체제에서 도커를 사용하 myjamong.tistory.com [Windows 10] Docker 설치 완벽 가이드(Home 포함) - LainyZine [Windows 10] Docker 설치 완벽 가이드(Home 포함) Docker는 경량 가상화 기술인 리눅스 컨테이너 도구입니다. Windows 10 Home과 Pro에서도 몇 가지 설정을 통해 Docker Desktop으로 리눅스 컨테이너를 사용할 수 있습니다. 이 글에서는 Windows 10에서 Docke.. 2023. 1. 16.
Spring Cloud (MSA) 분산추적 , Zipkin 분산 추적 Distributed Tracing - 각각의 요청에 Unique Id 할당 - 시간 데이터를 모아 시간 지연 문제 해결 집킨 사용 Open Zipkin 은 MSA 에서 성능 문제를 확인할 수 있는 매우 편리한 도구 - 트랜잭션의 소요 시간을 그래픽으로 확인 가능 - 호출에 관련된 각 마이크로서비스별로 소요된 시간 분석 가능 이미지 생성, 컨테이너 생성 openzipkin/zipkin Tags | Docker Hub docker run -p 9411:9411 openzipkin/zipkin:2.23 의존성 추가 currency-conversion-service, currency-exchange-service, api-gateway 서버 org.springframework.cloud spring.. 2022. 12. 30.
Spring Cloud (MSA) - Resilience4j @Retry @CircuitBreaker(서킷브레이커) Resilience4j 앞의 서비스가 다운되거나 느릴 때 전체 chain에 영향을 끼친다. -> 만약 그럴때 fallback 반환 -> 부하 감소를 위한 CIrcuit Breaker pattern을 구현 -> 다시 요청 -> 속도 제한 ∴ Resilience4j currency-exchange-service 프로젝트 의존성 추가 org.springframework.boot spring-boot-starter-aop io.github.resilience4j resilience4j-spring-boot2 package com.javapp.microservices.currencyexchangeservice.controller; import io.github.resilience4j.retry.annotation.. 2022. 12. 6.
Spring Cloud (MSA) API Gateway - 경로탐색(Exploring Routes), Logging Filter 이전 포스팅 : 로드밸런서 Spring Cloud Gateway 사용 Simple, yet effective way to route to APIs Provide cross cutting concerns: Security Monitoring/metrics Built on top of Spring WebFlux (Reactive Approach) Features: Match routes on any request attribute Define Predicates and Filters Integrates with Spring Cloud Discovery Client (Load Balancing) Path Rewriting Eureka http://localhost:8761 Setting up Spring Cl.. 2022. 12. 3.
Spring Cloud (MSA) - 로드밸런싱 Eureka, Feign 이전 포스팅 네이밍서버 (유레카 서버) 여러 포트 번호를 쓰고 있기 때문에 네이밍 서버를 통해 포트 번호에 상관없이 가져옴. Eureka 유레카를 통해 관리 네이밍 서버 naming server 생성 의존성 등록(maven) org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import Gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' versio.. 2022. 11. 27.
Spring Cloud (MSA) - Feign 다른 서버 값 가져오기 Feign 다른 서버에서 실행된 결과를 가져옴 Currency Exchange Microservice CurrencyExchange @NoArgsConstructor @Getter @Setter @Entity public class CurrencyExchange { @Id private Long id; @Column(name = "currency_from") private String from; @Column(name = "currency_to") private String to; private BigDecimal conversionMultiple; private String environment; } CurrencyExchangeController @RestController public class C.. 2022. 11. 26.
Spring Cloud (MSA) - Config Server 마이크로 서비스 개발 시작 Dynamic Scaled Up And Down Naming Server (Eureka) Ribbon (Client Side Load Balancing) Feign (Easier REST Clients) Visibility And Monitoring Zipkin Distributed Tracing Netflix API Gateway Ports ApplicationPort Application Port Limits Service 8080, 8081, ... Spring Cloud Config Server 8888 Currency Exchange Service 8000, 8001, 8002, .. Currency Conversion Service 8100, 8101, 8102, ... 2022. 11. 25.
Spring Cloud (MSA) - HATEOAS, HAL Explorer, Static Filtering, Actuator HATEOAS Hypermedia as the Engin of Application State Spring HATEOAS : 하이퍼링크 자원과 함께 HAL(JSON Hypertext Application Language) 자원들 생성 Link라는 클래스로 다른 자원에 접근할 수 있는 링크 하이퍼미디어를 제공 다른 상태로 전이할 수 있는 링크 레퍼런스를 제공 org.springframework.boot spring-boot-starter-hateoas EntityModel A simple EntityModel wrapping a domain object and adding links to it. EntityModel 로 전달 import static org.springframework.hateoas.ser.. 2022. 11. 24.