IP 주소를 선호하는 이유
기본적으로 유레카는 호스트 이름(hostname)을 사용하여 접속하는 서비스를 등록한다. 이것은 서비스가 DNS 기반의 호스트 이름으로 할당되는 서버 기반 환경에서 잘 작동한다. 그러나 컨테이너 기반의 배포 환경(예 도커)에서 컨테이너는 DNS 엔트리가 임의로 생성한 호스트 이름을 할당해서 시작된다. eureka.instance.preferIpAddress를 true로 설정하지 않는다면 클라이언트 애플리케이션은 해당 컨테이너에 대한 DNS 엔트리가 없어 호스트 이름의 위치를 제대로 얻지 못한다. preferIpAddress 프로퍼티를 설정하면 클라이언트가 IP 주소로 전달받도록 유레카에 알려 준다.
개인적으로 이 프로퍼티를 항상 true로 설정한다. 클라우드 기반의 마이크로서비스는 일시적(ephemeral)이고 무상태형(stateless)이므로 자유롭게 시작하고 종료할 수 있다. 따라서 IP 주소가 이러한 유형의 서비스에는 더 적합하다.
eureka.client.registerWithEureka 프로퍼티는 조직 및 라이선싱 서비스가 유레카에 등록하도록 지시한다. eureka.client.fetchRegistry 프로퍼티는 스프링 유레카 클라이언트에 레지스트리의 로컬 복사본을 가져오도록 지시한다. 이 값을 true로 설정하면 레지스트리를 검색할 때마다 유레카 서비스를 호출하는 대신 레지스트리를 로컬에 캐싱하고, 클라이언트 소프트웨어는 30초마다 유레카 서비스에 레지스트리 변경 사항을 확인한다.
Note ≣
이 두 프로퍼티는 기본적으로 true로 설정되지만 설명 목적으로 애플리케이션 구성 파일에 추가했다. 코드는 해당 프로퍼티를 true로 설정하지 않아도 작동한다.