본문 바로가기

개발

[Spring Cloud Gateway] Springboot Eureka 설정

 

 

module-eureka: 유레카 서버로 설정

 

1. module-eureka → [build.gradle]

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

유레카 서버로 사용하기 위한 dependency 

 

 

2. module-eureka → [application.yml]

server:
  port: 8761

spring:
  application:
    name: module-eureka

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/ # Eureka Server URL지정 Eureka API 요청용 URL

  server:
    enable-self-preservation: false

management:
  endpoints:
    web:
      exposure:
        include: "*" # Spring Actuator
  • register-with-eureka: false → 단일 유레카 사용
  • fetch-registry: false → 다른 유레카 서버로부터 인스턴스들의 정보를 주기적으로 가져올 것인지 설정, 단일 유레카 서버 자체로 기동하여 등록할 필요없음
  • enable-self-preservation: false → 유레카에는 수신된 하트비트 수가 특정 임계값 아래로 떨어지면 인스턴스가 다운으로 표시되지 않도록 하는 자체 보존 모드가 있음. 'true'로 설정하여 인스턴스가 실제로 다운되어도 만료되는 것을 방지할 수 있다. 지금은 테스트 중이라 'false'로 설정. 비활성화 시 인스턴스가 갑작스럽게 감소될 수 있다. 
  • 고: https://assu10.github.io/dev/2020/12/05/spring-cloud-eureka-configuration/

 

 

3. module-eureka → [EurekaApplication]

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class);
        System.out.println("Eureka");
    }
}

@EnableEurekaServer 애노테이션 추가

 

 

http://localhost:8761 접속

 


module-common: 유레카 클라이언트로 설정

 

1. module-common → [build.gradle]

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

유레카 클라이언트로 사용하기 위한 dependency 

 

 

2. module-common → [application.yml]

server:
  port: 9001

spring:
  application:
    name: module-common
  datasource:
    url: jdbc:postgresql://localhost:5432/project
    username: {username}
    password: {password}
    driver-class-name: org.postgresql.Driver

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka #Eureka Server 명시
  instance:
    leaseRenewalIntervalInSeconds: 30 # 30 seconds
    leaseExpirationDurationInSeconds: 90 # 90 seconds

 

 

 

3. module-common → [CommonApplication]

@SpringBootApplication
@EnableDiscoveryClient
public class CommonApplication {
    public static void main(String[] args) {
        SpringApplication.run(CommonApplication.class);
        System.out.println("Common");
    }
}

 

 

http://localhost:8761 접속