본문 바로가기

spring cloud11

Spring Cloud Config 스프링 프로젝트의 구성에 필요한 정보는 주로 application.yml(혹은 application.properties)파일에서 관리된다. 그런데 해당 설정 정보 파일을 스프링 프로젝트 내부가 아닌 외부에 분리할 수 있다. -> 1. 하나의 중앙화된 저장소에서 구성요소 관리 가능 -> 2. 각 서비스를 다시 빌드하지 않고, 바로 적용 가능 -> 3. 애플리케이션 배포 파이프라인을 통해 DEV(개발)-UAT(테스트)-PROD(프로덕션) 환경에 맞는 구성 정보 사용 이와 같은 Spring Cloud Config Server를 만들어 보자. 먼저 해당 Config Server 프로젝트를 만들기 전에 원하는 폴더에 다른 micro service들에서 참조할 yml을 만들어 줘야 한다. 본인 git-local-r.. 2022. 3. 5.
API Gateway Service - Spring Cloud Gateway + Eureka 이번에는 지금까지 만든 first-service, second-service, apigateway-service를 discovery service(eureka)에 등록해보자. 클라이언트가 " http://localhost:8080/first-service/welcome "로 요청을 보내면 이는 API Gateway가 먼저 받는다. 이제 API Gateway는 " /first-service/** " 이하는 어떤 uri로 가야하는지 discovery service에게 물어보고 discovery service가 어떤 IP 주소와 포트로 가야하는지 알려주면 API Gateway는 해당 주소로 요청을 보내게 된다. 먼저 first-service, second-service를 discovery service에 등록.. 2022. 3. 1.
API Gateway Service - Spring Cloud Gateway - Filter추가하기 이제 이전에 만든 API Gateway Service에 필터를 추가해보자. 필터는 Pre Filter(사전 필터)와 Post Filter(사후 필터)로 나뉘며, Property혹은 Java Code로 직접 로직을 작성할 수도 있다. 먼저 자바코드를 사용하여 필터를 추가하는 방법을 알아보자. 일단 이전에 apigateway-service에서 작성한 yml의 cloud관련 설정을 모두 주석처리한다. server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigatew.. 2022. 3. 1.
API Gateway Service - Spring Cloud Gateway 이전에는 Netflix Zuul을 사용하여 API Gateway를 구현했는데, 이번에는 Spring Cloud Gateway를 사용해보자. (푸가로 스프링 클라우드 게이트웨이는 zuul과는 다르게 비동기를 제공한다.) 먼저 Spring Cloud Gateway를 사용하는 게이트웨이 프로젝트를 만들어야 한다. 아래와 같은 의존성들을 추가하여 apigateway-service라는 이름의 스프링 부트 프로젝트를 만들었다. 그리고 아래와 같이 yml을 작성해준다. server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka .. 2022. 2. 28.