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
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 구현 활성화
- 비슷한 역할 service registries
sample repository : https://github.com/yongpwi/spring-cloud-eureka-server
참조 : https://spring.io/guides/gs/service-registration-and-discovery/