파란하늘의 지식창고
반응형

eureka server를 사용해 보려고 설정을 진행하였다.

적절하게 설정을 하고 각 client에서 @EnableDiscoveryClient annotation을 설정하니 instance 등록이 정상적으로 되었다.

이제 잘 사용하면 되는데 문제는 eureka server를 재기동할 때 등록된 instance가 초기화된다는 점이었다.

eureka server의 경우 별도의 back end store를 사용하지 않는다.

eureka server가 이 문제를 해결하는 방법은 Peer Awareness이다.

https://docs.spring.io/spring-cloud-netflix/docs/current/reference/html/#spring-cloud-eureka-server-peer-awareness

여러 피어를 추가할 수 있고 피어간 등록이 동기화된다.

eureka:
  client:
    service-url:
      defaultZone: http://bluesky-cloud-netflix-eureka-server-1-service.default.svc.cluster.local:30100/eureka/,http://bluesky-cloud-netflix-eureka-server-2-service.default.svc.cluster.local:30100/eureka/

여기서 주의해야 하는 점은 defaultZone은 kebab-case가 아닌 camel case로 등록해야 한다.
(특정 property와 맵핑되는 게 아닌 map에 추가되는 key이기 때문이다.)

해당 정보를 가지고 있는 eureka server는 서로 간의 정보를 동기화하게 된다.

따라서 여러 eureka server 중 특정 server가 재기동이 되더라도 기존의 instance 정보를 공유받아 동기화한다.

만약 개인적인 공부 목적으로 eureka server를 1개만 띄운다면 다른 client를 띄우기 전에 띄워서 사용해야 한다.

등록된 application 정보는 eureka 서버의  "/eureka/apps" 주소를 호출하면 확인할 수 있다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

도움이 되었다면 광고를 클릭해주세요