Closed choboss00 closed 7 months ago
api gateway 는 클라이언트 대신 요청하고 응답을 받는 프록시 역할을 맡음
클라이언트는 마이크로서비스의 이름만 가지고 서비스를 호출할 수 있게 됨
비동기 방식 지원, 기존 Zuul 서비스를 대체함
@Component
로 등록이유는 설정해준 Ordered_HIGHEST_PRECEDENCE 때문이다. 우선순위를 가장 높은 걸로 설정해주었기 때문에, 가장 먼저 실행되는 것 이다. 이처럼 필터의 우선순위를 변경할 수 있다.
시나리오 가정 : 클라이언트가 http://localhost:8000/first-service/welcome 에 접속한다고 가정
이 경우, 먼저 API Gateway 를 지나게 되며 유레카 서버에 전달되고, 유레카 서버는 해당하는 마이크로서비스가 어디에 위치하는지 알려주게 됨
서비스 정보를 알게된 API Gateway 는 서비스와 직접 포워딩을 시켜줌으로써 정보를 가져올 수 있음
api gateway 는 predicates 를 보고 eureka 서버에서 해당하는 서비스 정보를 가져오고, 포워딩함
만약 하나의 서비스를 여러개 구동한다면, 게이트웨이에서는 라운드 로빈 방식으로 서비스 포워딩을 진행함
요청단일화 처리를 위한 API Gateway Service 등록