JVM/SpringCloud

Spring Cloud Netflix Eureka

kyoulho 2023. 8. 23. 15:41

Spring Cloud Netflix Eureka Server


Spring Cloud Netflix Eureka는 마이크로서비스 아키텍처에서 서비스 디스커버리와 로드 밸런싱을 지원하기 위한 모듈 중 하나이다.

각각의 서비스는 Eureka 서버에 자신의 정보를 키-값 형태로 등록하고, 다른 서비스들도 이를 검색할 수 있다.

org.springframework.cloud:spring-cloud-starter-netflix-eureka-server 라이브러리를 필요로한다.

@EnableEurekaServer

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

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

application.yml

server:
  port: 8761

# 사용될 어플리케이션 이름
spring:
  application:
    name: discoveryservice

eureka:
  client:
    # 유레카 라이브러리가 존재하는 채로 기동 시 등록하려는 시도가 일어나는데 그것에 대한 설정
    register-with-eureka: false
    fetch-registry: false

 

Spring Cloud Netflix Eureka Client


유레카 서버의 등록될 클라이언트 서버를 위한 모듈이다. spring-cloud-starter-netflix-eureka-client 라이브러리를 필요로한다.

@EnableEurekaClient 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient

@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {

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

application.yml

server:
  port: 0
  
spring:
  application:
    name: user-service

eureka:
  instance:
    # 유레카에 디스플레이 되는 애플리케이션 정보를 설정한다.
    # 기본적으로 유레카에 디스플레이 되는 정보는 hostname:app-name:port 이다.
    instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
  client:
    # 유레카 서버로부터 인스턴스들의 정보를 주기적으로 가져올 것인지 여부
    # true는 갱신 된 정보를 받겠다는 설정
    fetch-registry: true
    register-with-eureka: true
    service-url:
      # 어디에 등록될지
      defaultZone: http://127.0.0.1:8761/eureka

'JVM > SpringCloud' 카테고리의 다른 글

Spring Cloud Bus  (0) 2023.12.28
Spring Cloud Config  (0) 2023.12.27
Spring Swagger(Springdoc) 통합 설정  (0) 2023.12.27
Spring Gateway, Eureka 연동  (0) 2023.09.03
Spring Cloud Gateway  (0) 2023.08.23