728x90
반응형

Software Architecture/MSA 16

[MSA 구축하기] 9. API Gateway와 Eureka 서버 연동하기 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, API Gateway를 Eureka 클라이언트로 등록하여 API Gateway와 Eureka 서버를 연동할 것이다. API Gateway와 Eureka 서버 연동 프로세스 클라이언트가 API Gateway에 요청을 하면 API Gateway 가 Eureka server에 등록된 서비스들을 조회하고 해당 서비스로 라우팅을 해준다. 예를 들어, 로그인을 한다는 가상의 시나리오에 대해 어떻게 동작하는지 살펴보자. ①: 각 인스턴스를 실행하여 유레카 서버에 등록한다. 새로운 인스턴스는 시작할 때 유레카 서버에 IP, 호스트 주소, 포트 정보 등을 전달한다. 유레카 서버는 등록된 인스턴스들을 주기적으로 상태를 체크하면서 해당 인스턴스를..

[MSA] Spring Cloud Gateway Filter (API Gateway)

Spring Cloud Gateway를 사용한 요청/응답 프로세스 Spring Cloud Gateway는 다음과 같이 마이크로서비스들과 클라이언트단의 라우팅 역할을 해준다. 클라이언트는 원하는 서비스를 호출하기 위해 Spring Cloud gateway로 요청을 보낸다. Spring Cloud gateway에서는 어떤 서비스로 가야 하는지 분기처리를 해준다. 이때 Filter 기능을 통해 조건을 분기한다. 점선 네모 박스는 Spring Cloud gateway안에서 일어나는 일을 확대한 것이다. Spring Cloud Gateway Filter 란? Spring Cloud Gateway의 필터는 클라이언트의 요청을 가로채고 수정하거나, 다양한 작업을 수행하여 마이크로서비스 아키텍처에서의 라우팅, 보안, ..

[MSA 구축하기] 8. Spring Cloud Gateway에 필터 적용하기 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, Spring Cloud Gateway Routes의 Filters를 설정할 것이다. API Gateway 파트 4 https://bu119.tistory.com/94 [MSA 구축하기] 6. Spring Cloud Gateway 라우팅 설정하기 (API Gateway) 🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, API Gateway의 라우팅을 설정할 것이다. API Gateway 파트 2 마이크로서비스 서버를 2개 이상 준비하자. 라우팅을 설정하는 방법에는 3가 bu119.tistory.com Spring Cloud Gateway 라우팅을 설정했지만 서버를 실행했을 때 제대로 연결되지 않았다..

[MSA 구축하기] 7. Spring Cloud Gateway를 활용한 경로 수정 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 앞서, API Gateway의 라우팅을 설정했는데 실행했을 때 결과 값이 다르게 나타났다. 그 이유에 대해 알아보자. API Gateway 파트 3 우선, 작성한 코드를 살펴보자. 1. user-service의 UserController.java 파일 // user-service: UserController.java (8081 포트 사용) package com.caffeinedoctor.userservice.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestControll..

[MSA] API Gateway

최근 많은 서비스들이 독립적인 기능을 수행하는 작은 단위의 서비스들로 구성된 마이크로 서비스 아키텍처(Micro Service Architecture) 형태로 구축되면서 서비스의 복잡도를 줄일 수 있게 되었고, 변경에 따른 영향을 최소화하면서 개발과 배포를 할 수 있다는 장점도 얻게 되었다. 하지만 여기서 말하는 작은 단위의 서비스가 50개, 100개가 되었을 때, 이 많은 서비스들의 엔드포인트를 관리하는 데 있어서 어려움이 생기고, 또 각각의 서비스마다 공통적으로 들어가는 기능(ex 인증/인가, 로깅 등)들을 중복으로 개발해야 한다는 문제점이 발생한다. 이러한 문제점을 해결하기 위해 등장한 것이 바로 API Gateway이다. API Gateway란? API Gateway Service는 사용자가 설정..

[MSA 구축하기] 6. Spring Cloud Gateway 라우팅 설정하기 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, API Gateway의 라우팅을 설정할 것이다. API Gateway 파트 2 마이크로서비스 서버를 2개 이상 준비하자. 라우팅을 설정하는 방법에는 3가지가 있다. application.properties를 통한 경로 설정 application.yml를 통한 경로 설정 Config 클래스를 활용한 경로 설정 (직접 Java 코드 작성) Spring Cloud Gateway 공식문서의 5번째 카테고리 5. Route Predicate Factories에 다양한 라우팅전략이 있다. Spring Cloud Gateway 공식문서 https://docs.spring.io/spring-cloud-gateway/docs/current/r..

[MSA] Spring Cloud Gateway와 Netflix Zuul의 차이점 (API Gateway)

🔊 Spring Cloud Gateway를 활용하여 API Gateway를 구축할 때 Spring Initializr에서 의존성으로 Gateway를 추가하면 안 되고 Reactive Gateway를 추가해야 하는 이유는 무엇일까? ❓ API Gateway 프로젝트를 생성하기 위해 Spring Initializr에서 의존성으로 Gateway를 추가했다가 이후에 설정들이 잘 되지 않았다. 그래서 이유를 찾아봤더니 Reactive Gateway를 추가했어야 했다. 왜?!!! Gateway가 아닌 Reactive Gateway를 추가해야 할까? 그 이유에 대해 알아보자!! ⭐ 의존성에 Gateway가 아닌 Reactive Gateway를 추가해야 하는 이유? 마이크로서비스 아키텍처에서 API Gateway를 구..

[MSA 구축하기] 5. Spring Cloud Gateway 프로젝트 생성하기 (API Gateway)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. 🔊 이번에는, Spring Cloud Gateway를 사용하여 API Gateway를 구축할 것이다. API Gateway 파트 1 API Gateway란? 사용자가 설정한 Routing 설정에 따라 각 endpoint로 client를 대신해서 요청하고, 응답을 받으면 다시 client에게 전달해주는 역할을 한다. Spring Cloud에서는 Spring Cloud Gateway가 API Gateway의 역할을 수행한다. Spring Cloud Gateway란? 스프링 클라우드 게이트웨이는 MSA 가장 앞단에서 클라이언트들로 부터 오는 요청을 받은 후 경로와 조건에 알맞은 마이크로서비스 로직에 요청을 전달하는 게이트웨이이다. 게이트웨이는 개..

[MSA 구축하기] 4. Eureka 클라이언트에 랜덤 포트 할당하기 (Service Discovery)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. Service Discovery 파트 3 Service Discovery의 역할을 간략하게 정리하자면, Service Discovery란? 마이크로서비스의 정보(위치 등)를 등록할 수 있다. 외부의 요청이나 서비스가 마이크로서비스의 정보를 검색하기 위해 사용된다. Spring Cloud에서는 Spring Cloud Netflix Eureka가 Service Discovery의 역할을 수행한다. Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka 클라이언트란? MSA를 구성하는 요소들 중 Eureka 서버에서 모니터링 및 관리를 원하는 요소를 Eureka 클라이언트 설정을 진행해서 등록할 수 있다. 🔊 ..

[MSA 구축하기] 3. Eureka 클라이언트 설정 (Service Discovery)

🔊 우리는 Spring Cloud를 활용하여 MSA를 구축한다. Service Discovery 파트 2 Service Discovery의 역할을 간략하게 정리하자면, Service Discovery란? 마이크로서비스의 정보(위치 등)를 등록할 수 있다. 외부의 요청이나 서비스가 마이크로서비스의 정보를 검색하기 위해 사용된다. Spring Cloud에서는 Spring Cloud Netflix Eureka가 Service Discovery의 역할을 수행한다. Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka 클라이언트란? MSA를 구성하는 요소들 중 Eureka 서버에서 모니터링 및 관리를 원하는 요소를 Eureka 클라이언트 설정을 진행해서 등록할 수 있다. 🔊 ..

728x90
반응형