DevBoi

[MSA] Service Discovery (Eureak) 본문

Develop/[Spring cloud]

[MSA] Service Discovery (Eureak)

HiSmith 2022. 5. 26. 17:21
반응형

 

각 서비스는 해당 주소와 포트번호가 다르다.

이러한 마이크로 서비스들은 Discovery Service에 저장된다.

외부에서 다른 서비스들이 마이크로 서비스를 검색하기 위해 사용되는 개념이며, 전화번호 책과 같은 느낌이다.

각각의 마이크로 서비스가 어디에 누가 저장되어있으며 요청 정보가 들어왔을때 요청 정보에 따라서 필요한 서비스의 위치를 알려주는

역할을 등록/검색 해주는 것을 Discovery Service라고 하면 유레카를 통해 구현이 가능하다.

 

우선 유레카 서버 구성이다.

 

서버는 실질적으로 간단하다.

단순히 포트 번호 지정하고, 해당 서버가 클라이언트가 되지 않게 옵션에서 false를 주면 끝난다.

유레카 라이브러리가 포함되어있으면 기본적으로 client의 역할로 등록하는 작업을 시도한다.

서버는 이러한 작업이 필요없기 때문에 false로 설정한다.

 

 

클라이언트 서버 구성을 살펴보자.

사실 유레카 클라이언트는 , 그냥 서비스 서버이다.

자신의 어플리케이션 이름을 등록하고, 기존 설정값을 true로한다. 사실 이건 기본값이라 삭제 해도 무관하지만

register-with-eureka,fetch-registry는 true로 설정하는 편이다.

추가로, defaultZone으로, 유레카 서버의 정보를 넘겨준다.

 

 

서비스 디스커버리를 사용하는 게이트웨이의 설정이다.

우선 게이트웨이도 유레카 클라이언트로 등록이 되어야한다.

그리고, 라우트 기능으로, predicates에 경로, 그리고 uri에는 유레카 서버에서 등록한 id를 규칙에 맞게 적는다

ACTION-USER는 유레카 서버에 등록된 호스트 느낌이고, 유레카 서버 내에서 확인 가능하다.

 

무튼 이런식으로 작성해주면, 게이트웨이에서는 특정 서버에 대한 정보를 고정적으로 적는게아니라

서비스 디스커버리에 아이디값으로 넘기게 되고, 결국 서버에 대한 상세 정보는 유레카 서버에서 담당을 하게 된다.

 

반응형