[Spring] zuul 사용시 Eureka client로 분배가 안되는경우
Toy 프로젝트에 zuul 을 적용해서 사용해보고있는데
여러 appSvr를 EurekaServer에 붙이고 zuul로 호출해봤으나 이상하게도
하나의 appSvr로 호출되는 현상이 발생했습니다.
이게 원래 그런가?(active-standby로..?) 라고 처음에는 생각해봤지만 그건 너무 아닌것 같아서
이런저런 시도를 하다 eureakServer에 /eureka/apps 로 등록된 app을 확인해보니
zuul(API-GATEWAY)이랑 appSvr(MEMBER-API 라는 샘플..)이 정상적으로 등록되어있지만
appSvr가 3개가 나타나야 하는데 하나만 나타나는것을 확인했습니다.
등록된 정보들을 살펴보다가 떠오른것이..
eureka.instanceId 설정을.. 안했...네요..
설정을 안하다보니, ip:applicationName:port 으로 instanceId가 다 지정되어
(port는 일부러 random으로 띄우기 위해 0으로 설정했었습니다.)
동일한 instanceId 로 등록을 시도하고 있었던것 이였습니다.
그래서 'eureka.instance.instance-id' 설정을 추가해주었고
설정값은 'hostname:applicationname:springinstanceId:random값'
으로 하여 중복이 발생하지 않고 기존처럼 인식할수 있도록 변경하였습니다.
eureka.instance.instance-id=${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}
간단한 설정 실수였지만.. 역시 reference 를 잘 읽어야.. 하겠습니다.
요약
1. eureka.instance.instance-id 를설정하지 않거나 중복 된다면 제대로 동작 안할수 있다.
'JAVA > Spring' 카테고리의 다른 글
reactor Schedulers (0) | 2019.12.16 |
---|---|
스프링 부트 2.2 릴리즈노트 (0) | 2019.11.01 |
[Spring] JDBC Template 어떻게 Thread-Safe 할까? (0) | 2019.08.06 |
[Azure] SpringBoot, AppService로 배포 (0) | 2019.08.02 |
Spring Boot Toy 프로젝트 세션 클러스터링-1 (0) | 2019.07.04 |