티스토리 뷰
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 | Dowon Lee - 인프런
Dowon Lee | , 클라우드 네이티브 아키텍처를 구축하고, 마이크로서비스 앱 개발에 도전하세요! 🚧 [사진] IT 시스템에는 매년 수많은 기술이 생겨나고, 사라지고 있습니다. 새롭게 출시된 개념이나
www.inflearn.com
으로 공부한 내용을 정리하는 내용 입니다.


API GateWay
API 게이트웨이(패턴) 는 마이크로서비스 관리 / 운영을 위한 플랫폼 패턴이며 해당 패턴에 필요한 기능들을 제공하는 서버를 말하는 것으로 개별 서비스의 앞 단에서 모든 서비스들의 엔드포인트를 단일화하고 다음과 같은 필수 기능 요소들을 제공합니다.
인증과 인가 : 모든 서비스들에 대한 접근에 있어서 단일 진입점에서 인증과 인가 처리를 진행
API 요청 로드밸런싱 및 라우팅 : API 요청을 식별하여 적절한 마이크로서비스로 전달
QoS(Quality of Service) : 안정적인 서비스 제공 및 네트워크 품질을 관리하며 사용자 / 클라이언트 / API 단위로 접속 제어
로깅 및 모니터링 : API 요청에 대한 로깅 / 모니터링 기능 지원
입력 유효성 검사 : API 요청의 적절한 형식과 필수 데이터 포함 여부를 식별 및 관리
API 게이트웨이의 장단점
장점
애플리케이션의 내부 구조를 캡슐화 : 클라이언트는 특정 서비스를 호출하지 않고 단순히 게이트웨이와 통신하며, API 게이트웨이는 각 종류의 클라이언트에 특정 API를 제공
클라이언트와 애플리케이션 간의 왕복 횟수가 감소하며, 클라이언트 코드 단순화
단점
관리 포인트 증가 : 개발, 배포 및 관리해야 하는 지점이 증가
API Gateway로 모든 호출이 집중 : 각각의 마이크로서비스를 호출 하기 위해서는 API Gateway를 호출 하게 되는데 모든 호출이 API Gateway로 집중되면서 병목 현상이 발생할 가능성
이러한 단점에도 불구 하고 MSA 아키텍처에서는 API Gateway가 반드시 필요.
사용법
1. Spring Boot를 이용한 API Gateway service 생성

2. API Gateway를 위한 Dependency 선택

3. application.yml 설정

yml 설정 내용
# API Gateway Port 정보
server:
port: 8000
# eureka 등록
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8791/eureka
spring:
application:
name: apigateway-service
#Gateway 설정
cloud:
gateway:
mvc:
routes:
# id - 고유한 id값 중복 되면 안됨
- id: first-service
# uri - Api Gateway를 호출하는 경우 predicates의 Path에 해당하는 경우 포워딩할 주소
uri: http://localhost:8081/
# predicates - API Gateway 호출시 포워딩할 조건
predicates:
- Path=/first-service/**
- id: second-service
uri: http://localhost:8082/
predicates:
- Path=/second-service/**
yml 설정값에서 중요한 부분은 cloud.gateway.mvc.routes 부분으로 id로 route 정보를 설정할 수 있고 predicates의 Path에서 설정한 조건에 부합하는 경우 uri 에 설정한 주소로 포워딩 하도록 하는 것이다.
실제 Client는 각각의 마이크로서비스의 호출 하는 것이 아닌 API Gateway를 호출 하게 되면 Gateway의 yml에 설정된 조건에 따라 각각의 마이크로서비스를 호출하게 되는것이다.
ex) Client http://localhost:8000/first-service/welcome 호출 -> api Gateway에서 predicates 조건에 맞는 정보를 찾음 -> 조건이 맞는 경우 http://localhost:8081/first-service/welcome 로 호출
이것이 가장 기본적인 API Gateway 사용법이다.
다음에는 yml을 사용하지 않고 JAVA 코드를 이용한 처리 방법을 확인해 보자
2025.04.01 - [공부하는 키보드르륵/JAVA] - [MSA] Spring Cloud Gateway vs Spring Cloud Gateway MVC
[MSA] Spring Cloud Gateway vs Spring Cloud Gateway MVC
Spring Cloud GatewayNetty 서버를 사용하여 Reactor 기반이며 비동기적으로 동작하고 application.yml에서 정의한 비동기식 설정이 자연스럽게 작동할 수 있습니다. Spring Cloud Gateway MVC전통적인 Spring MVC 방
keyborddrizzle.tistory.com
'공부하는 키보드르륵 > JAVA' 카테고리의 다른 글
[MSA] API Gate Way - CustomFilter (0) | 2025.04.07 |
---|---|
[MSA] API Gate Way - Java로 설정 (0) | 2025.04.07 |
[MSA] Spring Cloud Gateway vs Spring Cloud Gateway MVC (0) | 2025.04.01 |
[MSA] Service 생성 및 Eureka 등록 (0) | 2025.03.26 |
[MSA] Spring Cloud Eureka 개념 및 사용법 (0) | 2025.02.26 |
- Total
- Today
- Yesterday
- android
- 육아
- 인생역전
- springboot
- MSA
- java
- Spring
- Flutter
- 코드팩토리
- 행운
- 내돈내산
- 개발자
- 안드로이드
- 실내데이트
- 로또구매팁
- apigateway
- 로또
- 반응형레이아웃
- spring cloud gateway mvc
- 정보처리기사
- EUREKA
- 플러터
- 코딩셰프
- 갤럭시s25울트라
- 난임부부
- DART
- spring msa
- 소근육발달
- json
- Spring cloud gateway
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |