티스토리 뷰
API Gateway
API Gateway 는 클라이언트측 에서 여러 Micro Service 로 구성된 서버에 요청을 할 때, Micro Service에 각각 다른 위치( 도메인/IP/Port )를 기억하지 않아도 API Gateway 의 위치 하나로 각 Micro Service에 요청을 전달 할 수 있도록 해주는 인터페이스이다.
Why?
클라이언트가 요청이 각각의 서비스에 라우팅하는 수단으로 사용되고 중간에 API Gateway라는 인터페이스를 추가하는 것으로 클라이언트와 각 마이크로 서비스들 간의 느슨한 결합(Loose Coupling)을 구성할 수 있다.
이뿐만 아니라 API Gateway는 프록시(Proxy) 역할도 할 수 있어서 로깅, 인증, 유효성 검사의 역할도 담당할 수 있다.
자바 진영에 API Gateway는 Netflix Zuul, Spring Cloud Gateway, Armeria 등이 대표적이다.
Spring Cloud Gateway
1. 의존성 추가
Spring Boot에 아래와 같은 의존성을 추가하여 Gateway를 생성할 수 있다.
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
2. Gateway Server에 설정 파일 구성 ( yml , properties )
- routes 아래에는 라우팅 될 각각의 마이크로 서비스에 대한 정보를 기입할 수 있다. 이 때, Eureka와 같은 서비스 디스커버리를 사용하는지 여부에 따라 URI 기입 방법이 달라진다
- predicates 에 기입된 정보에 따라 요청된 API가 각 마이크로 서비스로 라우팅된다. 예를 들어 API Gateway에 {domain}/user/hello 라고 요청이 들어온다면 user-service 마이크로 서비스로 라우팅 될 것 이다.
참조
'BackEnd > Java&Kotilin' 카테고리의 다른 글
캡슐화와 정보은닉 (0) | 2022.08.28 |
---|---|
[Spring Cloud] API Gateway에 Filter 추가하기 (1) | 2022.08.27 |
서비스 디스커버리(Service Discovery) 는? (0) | 2022.08.25 |
[Java] 생성자(Producer)-소비자(Consumer) Pattern (0) | 2022.08.24 |
[Java]병렬 스트림( Parellel Stream ) (0) | 2022.08.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- pool
- 컴포짓 패턴
- 수직 분할
- pass by value
- 클린 아키텍처
- 메모리 파편화
- 동적 디스패치
- 수평 분할
- 세션 불일치
- 메모리 단편화
- Sticky Session
- 뾰족함
- multimap
- SpringBoot 2.2
- 객체 풀
- 정적 타입 언어
- 육각형 아키텍처
- 장애 해결기
- Memory Fragmentation
- 동적 타입 언어
- ATDD
- 외부 단편화
- Object Pool
- RestAssured
- java
- Clean Architecture
- OOP
- Session
- pass by reference
- 내부 단편화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함