Spring cloud zuul proxy - API gateway

요즘 MSA(Micro Service Architecture) 에 빠져서 이것 저것 건드려 보고 있다. 그러다가 zuul proxy라는 걸 알게되어서 끄적끄적 대다가 만져봤는데, 재미있어서 오랜만에~ 블로깅하려고 한다. 원래 그동안 한 건 많은데 뭔가 정리하기 너무 귀찮은데 이건 방금 해서 아 이참에 다시 블로깅 시작해야지 하는 맘에 올린다. 간단하게, zuul 이 뭐하는 놈인가 봤더니, 일단 proxy가 뭐냐? 대략 위키나 구글링 해보면, 서버와 클라이언트 사이에서 중계기 역할을 한다고 한다. proxy 서버의 역할은 캐싱 및 라우팅 역할이 제일 큰 것 같다. 클라이언트로 부터 요청이 들어왔을 때 수많은 서비스들 중에 어디 서비스로 찔러줄건지 교통정리 해주거나(?) 여러 번 요청 들어온 거는 캐싱해놨다가 뭐 빠르게 응답을 주는 등 리소스 관리에도 도움을 줄 수 있는 것 같다. 짧고 짧은 나의 생각에서 정리해 보았다. 그래서 zuul이 뭔가 했더니 대략 위에 것들을 쉽게(?) 해줄 수 있도록 해주는데 넷플릭스에서 만들었다고 했나? 암튼 많이들 쓰는 것 같다. 더 공부 해야 겠다. 지금 부터는 대략 끄적여 본 것을 나열 해봐야겠다. 먼저 spring boot Maven 프로젝트 2개를 만든다. 하나는 zuul proxy server 로 port 는 8080 나머지 하나는 레알 찐탱 간단하게 REST API(?)라고 하기에 민망한 서버로 port 는 8081 로 만든다. 먼저 proxy server에서 Maven에 디펜던시 추가 그 다음에는, application.yml 에다가 라우팅 설정을 해준다. /foos/** 에 매칭되는 path는 전부 http://localhost:8081/foos 로 라우팅 해주겠다는 설정이다. 그리고 @EnableZuulProxy 붙여주고 마지막으로 ZuulFilter를 상속받아 컴포넌트를 만들어 준다. type 설정해주고, order...