Spring Cloud Gateway 와 Eureka 는 아래와 같은 프로세스로 동작한다. 클라이언트가 요청을 보낸다. API Gateway는 Eureka 서버를 통패 해당 엔드포인트의 주소값을 찾는다. API Gateway는 Eureka 서버로 부터 받은 주소를 사용해 요청을 보낸다. 응답을 받아 클라이언트에게 응답한다. 1) Spring Cloud Gateway 와 Eureka 연동 초기 설정 먼저 Spring Cloud Gateway와 Eureka 서버 예제를 작성 한 상태에서 진행한다. 관련 글 Spring Cloud Gateway 개념 및 Route 설정 Service Discovery - Spring Cloud Netflix Eureka 설정 소스코드 https://github.com/yewo..
spring cloud
모든 Microservice는 Service Discovery에 등록해야 한다. 소스 코드 : https://github.com/yewon-Noh/spring-cloud/tree/main/spring-cloud-nexflix 1) Eureka Server 설정 dependency 추가 org.springframework.cloud spring-cloud-starter-netflix-eureka-server 4.1.0 메인 클래스에 @EnableEurekaServer 어노테이션 추가하여 Eureka Server 임을 알려준다. @SpringBootApplication @EnableEurekaServer public class EurekaServerTestApplication { public static v..
1) API Gateway 라우팅 설정에 따라서 각각의 엔드포인트로 클라이언트 대신해서 요청하고 응답 받으면 다시 클라이언트에게 전달해주는 프록시 역할 시스템 내부 구조는 숨기고 외부의 요청에 대해서 적절한 형태로 가공하여 응답할 수 있다는 장점이 있다. 2) Spring Cloud Gateway 개념 API Gateway 중 하나로, Route, Predicate, Filter로 구성되어 있다. Route API Gateway에서 가장 기본이 되는 요소 요청할 서비스의 고유값 ID, 요청할 uri, Predicate, Filter로 구성 요청된 uri의 조건이 predicate와 일치하는지 확인 후, 일치하는 경우 해당 uri 경로로 요청을 매칭 시킴 Predicate API Gateway로 들어온 요..

1) Service Discovery 개념 클라우드 환경에서는 AutoScaling 이나 컨테이너 기반의 배포 등으로 인해 서비스의 IP가 동적으로 계속 변경 될 수 있다. 따라서 클라이언트가 호출할 서비스를 찾는 매커니즘(서비스 등록,검색)이 필요하며, 이를 Service Discovery 라고 한다. 요약 서비스의 등록과 검색을 해주는 서비스이다. Service Discovery에는 어떤 서비스인지, 그리고 위치값(IP, Port)가 저장되어 있다. 2) Service Discovery 구현 방법 Client Side Discovery Service Client가 Service Registry에 Query를 통해 서비스의 위치를 물어보고 호출하는 방식 대표적으로 Netflix Eureka가 있다. 장..

Spring Cloud Config 설정 파일 내용을 갱신하기 위해서는 별도의 설정이 필요하다. Spring Cloud Config Server에 부하를 줄이기 위해 애플리케이션 실행 시 한번만 설정 정보를 읽어 로컬에 캐싱해두고, 이를 사용하기 때문이다. 내용을 갱신하는 방법은 4가지가 있다. 서버 재기동 actuator 이용 spring cloud bus Watcher를 통해 spring cloud server에 변경 여부 확인학 이 글에서는 Actuator에 대해 설명한다. 1) Spring Actuator 개념 어플리케이션을 모니터링 하고 관리하는 기능을 제공한다. 서버를 재가동 하지 않고 변경된 설정 값을 반영할 수 있다. 하지만 반영해야할 서버가 여러개이면, 각각의 서버 모두 API를 호출해야..

1) Spring Cloud Config 개념 분산 시스템에서 외부화된 설정 정보를 서버 및 클라이언트에게 제공하는 시스템 Config Server는 외부에서 모든 환경에 대한 정보들을 관리해주는 중앙 서버 Client(Microservice)와 설정파일저장소(git) 간의 중간 다리 역할 장점 설정 정보를 외부로 분리한 후, 설정 정보를 변경하였을 때 별도로 재배포가 필요 없음(장점) 설정 정보를 분리함으로써 보안적인 측면 강화 단점 Config Server나 git에 장애가 있으면 전파될 수 있음 우선 순위에 의해 설정 정보가 덮어띄워질 수 있음 설정 파일 우선 순위 (나중에 읽어지는 것이 우선순위가 높음) 1. 프로젝트의 application.yaml 2. 설정 저장소의 application.yam..
스프링 프레임워크 기반의 클라우드 네이티브 애플리케이션을 개발하기 위한 프로젝트 스프링 프레임워크에서 MSA를 구축할 때 유용한 도구를 제공하는 프레임워크 즉, 분산 시스템의 개발 및 운영을 위한 프레임워크임 Spring Cloud 아키텍처 관련 용어 1) Cloud Native Application 클라우드 환경에서 최적화된 방식으로 설계, 개발 및 배포된 애플리케이션 특징 2) Spring Boot 단일 어플리케이션 개발을 위한 프레임워크 참고 https://adjh54.tistory.com/207 https://djlife.tistory.com/10