Spring Cloud Gateway 1

작성자 : 조회수 :


안녕하세요 요즘 포트폴리오 작업과 공부 때문에 오랜만에 글을 게시하게 되었습니다.


매일 새로운 지식을 얻으면 바로 정리하는 습관을 들여야 하는데 아직 어려운것 같습니다.


본론으로 들어가겠습니다.


GateWay가 하는 역할은 말 그대로 모든 서비스들의 중앙 입구를 뜻합니다.




Discovery는 전화번호부 같은 역할을 하며 다음 게시글에 다뤄볼 예정입니다.


자바 버전은 안정적으로 11로 했으며 gateway client 라이브러리가 필수로 들어갑니다.



Yml 파일 등록법입니다.

모두 주석 처리가 되어있지만 주석 처리를 풀기만 한다면 문제없이 작동합니다.

 

lb://first-test-service 를 본다면 원래대로라면 localhost:{포트번호} 이런 식 이지만

(lb load balancer)

 

유레카 서비스에 아이디만 잘 등록된다면

 

아래와 같이 고정 값이 아닌 아이디 값을 넣어도 작동합니다.



설치가 끝나면 등록 방법은 위와 같습니다. 예를 들어 first-test-service를 등록할 때

 

(이미 Eureka discovery가 켜져 있고 gateway, 모든 ms 서비스들이 유레카에 등록되어있다는 가정입니다. )

 


이렇게 말입니다.

하지만 저는 yml 등록 방식보다는 자바 코드 등록을 선택했습니다.

 

왜냐하면 첫 번째로 yml 파일도 물론 application.yml 파일 말고도 이름을 붙여서

 

분할 등록이 가능하지만, 코드 관리가 개인적으로는

 

Java 코드가 더 나을 꺼 같아서 선택했습니다.



위에 주석 처리 되었던 yml파일 설정 말고 해당 사진의 코드를 자세히 봐보시면

 

나중에 filter설정과 포워딩 설정이 더 늘어 날 것을 생각한다면 이렇게 만드는 게 좋다고 판단하여

 

Yml 파일의 설정 말고 자바 코드로 하기로 했습니다.




이렇게 filters rewrite 설정이 있는데 무슨 뜻이냐면


만약 저 설정이 없다면



위 사진처럼 모든 컨트롤러에 gateway와 맞춰서 requestmapping을 따로 추가해야하는

 

번거로움이 생깁니다.

 

하지만 rewrite 설정이 들어가면

 

위 사진 8 RequestMapping 어노테이션을 “/” 으로 해놔도 아래처럼 gateway가 잘잡아줍니다.



이상입니다.

참고 인프런 Spring Cloud 개발하는 마이크로서비스 애플리케이션(MSA)