Cloud

유레카서버, 등록방법

Jungsoomin :) 2020. 12. 5. 23:52
프로젝트를 시작하면, 거의 모든 설정을 .properties 파일에 집약시킵니다.
더욱 많은 서비스를 제공하고 더욱 배포하면 할 수록, 추가하고 수정한 프로퍼티는 더욱 커다란 문제가 됩니다.

어느 서비스가 다운되거나, 서비스 로케이션이 바뀔수도 있습니다. 프로퍼티 파일에 대한 메뉴얼이 바뀌는 등, 여러가지 이슈들이 생겨날 수 있습니다.

유레카 등록탐색 서비스이러한 시나리오에 도움을 줍니다. 모든 서비스는 유레카 서버에 등록되며,
유레카 서버를 호출하여 조회되므로 위치변경을 처리해줄 필요가 없으며 내부적으로 처리됩니다.

 

유레카 서버 모듈 작성

 

필요의존

 

Index of milestone/

 

repo.spring.io

  • 버전관리 : org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}
  • 버전 설정 : springCloudVersion 에 해당 버전 대입 후 사용 됨
plugins {
    id 'org.springframework.boot' version '2.4.0'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone' }
}

ext {
    set('springCloudVersion', "2020.0.0-M6")
}

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

test {
    useJUnitPlatform()
}

@SpringBootApplication 즉, @Configuration 클래스에 @EnableEurekaServer 작성

 

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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

}

 

application.yml

spring:
    application:
        name: eureka-server

server:
    port: 8761

# register-with-eureka: false < 유레카 서버는 유레카에 등록될 필요가 없음
# fetch-registry : false 동일
eureka:
    client:
        register-with-eureka: false
        fetch-registry: false
        service-url:
            defaultZone: ${EUREKA_SERVER_LIST:http://localhost:8761/eureka/}

유레카 서버동작


유레카 클라이언트 작성

기존의 API 서비스를 사용할 것 임

 

필요의존

 

Index of milestone/

 

repo.spring.io

  • 버전관리 : org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}
  • 버전 설정 : springCloudVersion 에 해당 버전 대입 후 사용 됨
plugins {
    id 'org.springframework.boot' version '2.4.0'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone'}
}

ext {
    set('springCloudVersion', '2020.0.0-M6')
}

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
    imports{
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

test {
    useJUnitPlatform()
}

 

@SpringBootApplication 즉, @Configuration 클래스에 @EnableDisciveryCient 작성

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

@SpringBootApplication
@EnableDiscoveryClient
public class EmpoyeeProducerApplication {

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

}

 

application.yml

server:
  port: 8080

# 만들었던 유레카의 서비스 Url 을 입력하여 등록 시킴
eureka:
  client:
    service-url:
      defaultZone: ${EUREKA_SERVER_LIST:http://localhost:8761/eureka/}
# 어플리케이션 이름이 유레카에서 관리되는 이름이 된다.
spring:
  application:
    name: employee-producer

 

 

유레카 서버에 등록된 모습

 

'Cloud' 카테고리의 다른 글

Eureka  (0) 2020.12.07
Netflix Component 설명  (0) 2020.12.07
Netflix Components  (0) 2020.12.07
DiscoveryClient 를 이용한 API 콜  (0) 2020.12.07
하나의 모듈과 의존하는 모듈관계에서 변경 전파를 적게 소비해보기  (0) 2020.12.05