
서비스를 구성하는 개별 인스턴스를 찾는 프로세스1)
일종의 전화부 책과 같은 역할을 합니다.
Spring Boot Application 에 대한 통합 환경 구성을 지원하는 서비스 입니다. 2)
실습환경
유레카 서버를 생성해보도록 하겠습니다.

위 사진과 같이 반드시 필요한 Dependencies 로는 Eureka Server이 있어 추가합니다.
@EnableEurekaServer@EnableEurekaServer // 해당 어노테이션 추가
@SpringBootApplication
public class DiscoveryServiceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryServiceApplication.class, args);
}
}
Spring Eureka를 동작하기 위해서는 "${Project}Application.java" 파일에서 반드시 @EnableEurekaServer를 추가합니다.
server:
port: 8761
eureka:
client:
fetch-registry: false
register-with-eureka: false
다음으로 설정을 지정하도록 합니다.
아래의 두 항목에 대해서 false로 설정하는 이유는 자기 자신을 등록하는 웃긴 상황을 방지하기 위해서 설장하였습니다.
이후 실행시키면 다음과 같이 정상적으로 서버가 동작하는 것을 확인할 수 있습니다.

이제 유레카 서버에 등록할 새로운 서버를 생성해보도록하겠습니다.
Dependencies
// UserServiceApplication.java
@EnableDiscoveryClient
@SpringBootApplication
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
Discovery Client 로 등록하기 위해서 @EnableDiscoveryClient 어노테이션을 추가하였습니다.
server:
port: 0 # 1)
spring:
application:
name: user-service
eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}} # 2)
client:
fetch-registry: true
register-with-eureka: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka # 3)
server.port 를 0으로 설정하면 사용하지 않는 포트를 랜덤으로 찾아서 서버를 기동합니다.eureka.instance.instance-id 랜덤 포트를 사용하면 유레카에서 하나의 인스턴스로 밖에 인식을 하기때문에 구별하기 위해 호스트네임, 인스턴스아이디, 랜덤 값을 추가하여 구분할 수 있도록 합니다.eureka.client.service-url.defaultZone 으로 유레카 서버의 url을 작성합니다.이후 실행시키면 다음과 같이 정상적으로 동작하는 것을 확인할 수 있습니다.
