choboss00 / Spring-Cloud-MSA-Inflearn

Spring Cloud 로 개발하는 마이크로서비스 애플리케이션
0 stars 0 forks source link

API Gateway Service #4

Closed choboss00 closed 7 months ago

choboss00 commented 7 months ago

요청단일화 처리를 위한 API Gateway Service 등록

choboss00 commented 7 months ago

api gateway 는 클라이언트 대신 요청하고 응답을 받는 프록시 역할을 맡음

Netflix Ribbon

클라이언트는 마이크로서비스의 이름만 가지고 서비스를 호출할 수 있게 됨

Netflix Zuul

choboss00 commented 7 months ago

Spring Cloud

비동기 방식 지원, 기존 Zuul 서비스를 대체함

choboss00 commented 7 months ago

Spring Cloud Gateway - Filter 적용

choboss00 commented 7 months ago

Custom Filter 적용

choboss00 commented 7 months ago

Global Filter 적용

choboss00 commented 7 months ago

LoggingFilter 적용

image

이유는 설정해준 Ordered_HIGHEST_PRECEDENCE 때문이다. 우선순위를 가장 높은 걸로 설정해주었기 때문에, 가장 먼저 실행되는 것 이다. 이처럼 필터의 우선순위를 변경할 수 있다.

choboss00 commented 7 months ago

Load Balancer

시나리오 가정 : 클라이언트가 http://localhost:8000/first-service/welcome 에 접속한다고 가정

이 경우, 먼저 API Gateway 를 지나게 되며 유레카 서버에 전달되고, 유레카 서버는 해당하는 마이크로서비스가 어디에 위치하는지 알려주게 됨

서비스 정보를 알게된 API Gateway 는 서비스와 직접 포워딩을 시켜줌으로써 정보를 가져올 수 있음

choboss00 commented 7 months ago

image

api gateway 는 predicates 를 보고 eureka 서버에서 해당하는 서비스 정보를 가져오고, 포워딩함

choboss00 commented 7 months ago

만약 하나의 서비스를 여러개 구동한다면, 게이트웨이에서는 라운드 로빈 방식으로 서비스 포워딩을 진행함