Eureka Server 설정

  • Standalone Setup of Eureka Server


    • https://start.spring.io/에서 프로젝트 템플릿 생성
    • Project 및 Metadata 정보를 작성
    • Dependencies 입력란에 eureka server 입력 후 추가
    • Generate Project 클릭
    • 다운로드 받은 압축 파일을 IntelliJ로 오픈



    • 다운 받은 폴더 선택


    • Gradle 설정 "Use default gradle wrapper (recommended)" 선택


    • 프로젝트 gradle 설정 파일인 build.gradle 파일을 확인


      • implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' // netflix-eureka-server 설정 확인


    • 서비스 레지스트리 설정을 위해서 SpringCloudEurekaServerApplication.java 파일에 @EnableEurekaServer 어노테이션 등록


    • 상위 상태에서 server run 실행


    • 레지스트리가 시작되면 stacktrace에 연결할 레지스트리의 복제본 노드가 없다는 메시지를 표시

    • 프로덕션 환경에서는 두 개 이상의 레지스트리 인스턴스 필요
    • 기본적으로 레지스트리도 자체 등록을 시도하므로 임시 비활성화 처리
    • Spring boot 프로젝트 내부 application.properties에 eureka server 설정정보 작성  
      server.port=8761

      eureka.client.register-with-eureka=false
      eureka.client.fetch-registry=false

      logging.level.com.netflix.eureka=OFF
      logging.level.com.netflix.discovery=OFF
    • application.yml 사용시
      • server:
        port: 8761

        eureka:
        client:
        fetch-registry: false
        register-with-eureka: false

        logging:
        level:
        com:
        netflix:
        discovery: OFF
        eureka: OFF


    • 상위 정보 입력 후 spring boot server 가동
      • 정상적으로 server start 되면 브라우저에서 http://localhost:8761 접속
      • application 설정 파일에 입력한 port로 접속하면 Eureka Server 화면 확인 가능


    • 서비스 레지스트리 시작 했으므로 레지스트리에 레지스트리에 등록하고 Spring Cloud DiscoveryClient 추상화를 사용하여 자체 호스트 및 포트에 대한 레지스트리를 조사하는 클라이언트 설정
    • @EnableDiscoveryClient 어노테이션은 Netflix Eureka DiscoveryClient 구현 활성화



sample repository : https://github.com/yongpwi/spring-cloud-eureka-server

참조 : https://spring.io/guides/gs/service-registration-and-discovery/