인프런 커뮤니티 질문&답변

ygh님의 프로필 이미지

작성한 질문수

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

Spring Cloud Gateway - Load Balancer ➀

안녕하세요. 질문있습니다!

21.05.03 22:22 작성

·

219

1

안녕하세요! 좋은 강의 감사드립니다 :D

강의 약 1분 36초경에 설명해 주신 내용에 대해 궁금한 사항이 생겨 질문드립니다.

모든 api request들은 api gateway를 거치고 api gateway는 eureka server에게 뒷단의 instance가 어디있는지 요청하여 위치를 알아낸 후, 그 위치 정보로 api gateway가 다시 해당 instance에게 요청을 보낸다고 하셨는데요.

제가 알고있는 eureka 동작방식은, eureka server에 등록된 eureka client 들은 eureka server와 일정 시간 간격마다 통신을 하면서 특정 시점에 eureka server에 등록된 eureka client들의 모든 instance 정보를 얻고, 각 eureka client들은 eureka server로 부터 얻은 instance 정보들을 각각의 메모리 공간상에 저장해 놓고, 그 저장된 정보를 또 다른 instance로 라우팅 하는데 사용하는 방식으로 동작하는 것으로 알고있습니다.

혹시 제가 잘못 알고있는 것인지 궁금합니다.

답변 1

3

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

2021. 05. 04. 06:15

안녕하세요, 이도원입니다. 

말씀하신 것처럼, Eureka Client는 Eureka Server에게 30초 마다 자신이 살아있음(live)을 알려주기 위한 신호를 보내며, 서버에서는 90초 동안 신호가 들어오지 않은 인스턴스를 목록에서 삭제합니다. Eureka Client는 서버로부터 레지스트리 정보를 가져와서 로컬 캐쉬에 저장하여, 다른 서비스를 호출하는 용도로 사용되며, 이 정보도 30초 마다 갱신됩니다. 서버의 정보와 다를 경우에는 전체 정보를 다시 가져와서 갱신하게 됩니다. 

감사합니다. 

ygh님의 프로필 이미지
ygh
질문자

2021. 05. 05. 17:13

답변 감사합니다.

그렇다면, 각 Eureka Client에서 로컬 캐쉬내에 저장된 Eureka server로부터 얻어온 레지스트리 정보를 직접 확인할 수 있는 방법도 있을까요??

ygh님의 프로필 이미지

작성한 질문수

질문하기