Netflix에서 사용하는 JVM 기반의 라우터이자 로드밸런서
API Gateway로 사용됨
[용도]
API Gateway는 요청자인 Client와 API 제공자인 Backend service를 연결하는 중계자로 API Gateway를 통해 데이터를 유통한다.
안전한 API유통과 Client 요청별로 유연하게 대처하기 위해 API Gateway가 필요하다.
Client 요청에 유연하게 대응한다는 의미는 Client 유형(웹브라우저, 모바일앱 등)에 따라 맞는 API를 연결한다거나, Client를 사용하는 사용자의 권한이나 속성에 따라 적절한 결과를 리턴해주는것.
👉 Web 프로그램 또는 모바일앱에서 API를 호출 : /address/search_addr/{주소 키워드}
👉 zuul은 연결할 backend service의 id를 config파일에서 읽어 라우팅함
👉 /address/search_addr API가 호출되었으므로 service id가 address인 마이크로서비스를 연결해야함
👉 zuul은 자동으로 eureka에서 service id 가 address인 마이크로서비스를 찾아 그 주소로 라우팅 함
2018.12 부터 더 이상의 기능 개선 없이 유지만 하는 Maintenace Mode로 변경되어 Spring boot 2.4.x부터는 zuul, hystrix 가 더 이상 제공되지 않는다.
👉 Spring Cloud 커뮤니티에서 zuul 대신 권고하고 있는 API Gateway는 Spring Cloud Gateway이다.