본문 바로가기
개발/Spring Cloud

[Spring Cloud] Eureka Server 구축하기

by baau 2023. 6. 5.

Spring Cloud Netflix Eureka는 Spring Cloud Framework에서 제공한다.

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

 

  • Eureka는 MSA에서 사용하는 서비스 디스커버리 기능을 제공한다.
  • Service Discovery는 분산 환경에서 각각의 서비스가 서로 찾고 통신할 수 있도록 도와준다.
    • MSA과 같은 분산 환경에서는 서비스 간의 통신이 이루어지며, 이는 IP 주소와 Port를 이용하는 방식이다.
    • 하지만 클라우드 환경에서는 서비스가 동적으로 생성되거나, 컨테이너 기반으로 배포되어 IP 주소와 Port가 자주 변경된다.
    • 따라서 Service Discovery를 통해 동적으로 변하는 IP와 Port를 직접 알지 않아도 서비스의 위치를 동적으로 알아내고 호출할 수 있어, 클라우드 환경의 동적인 변화에 유연하게 대응할 수 있다.
  • A 서비스의 인스턴스가 생성될 때, Service Discovery에 등록하고, 해당 A 서비스를 호출하고자 하는 클라이언트는 Service Discovery를 통해 A 서비스의 주소를 물어보고, 등록된 주소를 받아 통신할 수 있다.

 

Eureka server 구축

Gradle 의존성 추가

implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'

 

Euraka Server 활성화 (XXXApplication.java)

@SpringBootApplication
@EnableEurekaServer
public class XXXApplication {

    public static void main(String[] args) {
        SpringApplication.run(XXXApplication.class, args);
    }

}
  • 해당 서버가 Eureka Server 역할을 할 수 있도록 @EnableEurekaServer 추가

 

Euraka Server 설정 파일 (application.yml)

server:
  port: 8761

spring:
  application:
    name: discoveryservice

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
  • server.port
    • Eureka Server가 Web Service로 구동되기 때문에 port 번호를 지정
  • spring.application.name
    • MSA에서 해당 서비스를 구별할 수 있는 고유한 ID
  • eureka.client
    • eureka 라이브러리가 포함된 채 스프링이 구동이 되면 기본적으로 Eureka Client로 역할로써, 자신을 등록하는 역할을 수행
    • 해당 서버는 Eureka 서버로써, 자기 자신을 Eureka 서버에 등록할 필요 없으니 모두 false로 설정

 

Euraka Server 실행

  • 서버 실행 후, http://localhost:8761 접속

 

MSA 공부

(1) Eureka Server 구성
(2) Eureka Client 구성
(3) Client Side Load Balancer & API Gateway 개념 정리
(4) Spring Cloud Gateway 구현

참고 강의 : https://www.inflearn.com/course/스프링-클라우드-마이크로서비스/dashboard