Ribbon 예제에서 서버 목록을 yml에 직접 넣었는데 자동화 할 방법은 ?
“서버가 새롭게 시작되면 그것을 감지하여 목록에 자동으로 추가되고, 서버가 종료되면 자동으로 목록에서 삭제하기 위한 방법은 없을까 ?”
Dynamic Service Discovery - Eureka
Service Registry
서비스 탐색, 등록
클라우드의 전화번호부
(단점) 침투적 방식 코드 변경
DiscoveryClient
spring-cloud 에서 서비스 레지스트리 사용 부분을 추상화(Interface)
Interface로 제공하므로, 다른 DiscoveryClient로 변경할 수 있음.
Eureka, Consul, Zookeeper, etcd 등의 구현체가 존재
Ribbon은 Eureka과 결합하여 사용 할 수 있으며 서버 목록을 자동으로 관리.
Eureka in Spring Cloud
서버 시작 시 Eureka Server(Registry) 에 자동으로 자신의 상태를 등록(UP)
eureka.client.register-with-eureka : true(default)
주기적 HeartBeat 으로 Eureka Server에 자신이 살아 있음을 알림
eureka.instance.lease-renewal-interval-in-seconds: 30(default)
서버 종료 시 Eureka Server에 자신의 상태 변경(DOWN) 혹은 자신의 목록 삭제
Eureka 상에 등록된 이름은 “
spring.application.name
”