우리네 장

[ MSA ] Spring Cloud Gateway와 Discovery Server 같이 사용하기 본문

MSA

[ MSA ] Spring Cloud Gateway와 Discovery Server 같이 사용하기

qpmi1zm29 2024. 1. 10. 04:27

이전, 라우팅 할 서비스의 uri를 하드코딩으로 설정할 경우, 고정 IP로 설정되어 있지 않은 auto-scaling 으로 서버의 인스턴스를 증가시키게 되면, 정상적으로 요청을 전달할 수 없다고 설명하였습니다.

 

유레카와 같이 사용하게 되면, 라우팅 정보를 고정된 uri가 아닌, 어플리케이션 이름으로 하여 변경되는 서비스 진입정보를 알아낼 수 있습니다.

 

 

유레카와 연동하여 사용하기 위해 변경한 설정 정보입니다.

물론 이렇게 사용하기 위해서는 대상이 되는 사용자 서비스와 게이트웨이 모두 유레카가 인식할 수 있도록 네이밍 서버에 등록해 주어야 합니다.

 

변경된 설정정보를 보시면, uri 부분에 http 프로토콜 대신, lb라는 프로토콜을 사용한 것을 볼 수 있습니다. 

- uri : lb://USERSERVICE

( 물론 사용자 서비스가 유레카에 USERSERVICE라는 이름으로 등록이 되어있어야 합니다. )

이렇게 설정하게 되면,  라우팅 할 요청정보가 들어왔을 때, 유레카가 해당 이름에 해당하는 서비스의 위치 정보를 게이트웨이에게 알려줍니다.

 

둘을 같이 사용하였을 때, 또 다른 이점이 있습니다.

load-balancer의 기능을 수행하게 되는데요, 

사용자의 트래픽 증가로 여러 대의 인스턴스가 필요해 유레카에 등록시키게 되면, 게이트웨이가 알아서 부하를 분산하여 트래픽이 적은 서비스의 접속정보로 요청을 보낼 수 있습니다.