클라이언트가 Service Discovery로 요청을 보내면 API Gateway를 거쳐 전달된다.
Dependencies에서 Spring Cloud Discovery > Eureka Server 를 체크하고 생성한다
어노테이션을 통해 EurekaServer를 이용해 서버를 기동하게 할 수 있다.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class DiscoveryserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryserviceApplication.class, args);
}
}
server:
port: 8761
spring:
application:
name: discoveryservice
eureka:
client:
register-with-eureka: false
fetch-registry: false
server.port
: 실행포트 번호
spring.application.name
: 마이크로서비스를 담당하는 서비스의 고유한 ID 네임을 의미
eureka.client.register-with-eureka
, eureka.client.fetch-registry
: 유레카 서버로부터 인스턴스들의 정보를 주기적으로 가져올 것인지를 설정하는 속성.
프로젝트 실행 후 localhost:8761
주소로 접속
Eureka 대시보드가 나오고
MicroService로 개별되어있는 Application 리스트를 확인할 수 있다.
Dependencies에서 Spring Cloud Discovery > Eureka Discovery Client 를 체크하고 생성한다.
서비스 유지에 필요한 의존성이 있으면 더 체크한다 (lombok, devtools 등)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
// user-service의 application.yml
server:
port: 9001
spring:
application:
name: user-service
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka
Server쪽 포트를 defaultZone으로 설정한다.
application.yml에 설정한 이름대로 user-service가 서버에 추가된걸 확인할 수 있다.