헤르메스 LIFE

[Spring Cloud Netflix] Eureka Server 샘플 본문

Spring Boot Framework

[Spring Cloud Netflix] Eureka Server 샘플

헤르메스의날개 2024. 3. 10. 23:13
728x90

 

 

https://github.com/hermeswing/EureakServer

 

GitHub - hermeswing/EureakServer: Spring Eureka Server

Spring Eureka Server. Contribute to hermeswing/EureakServer development by creating an account on GitHub.

github.com


개발환경

JDK : Zulu JDK 17.0.10

SpringBoot 3.2.3

SpringBoot Eureka Server ( 현재 최신 버전 :4.1.0 )

Build Tools : Gradle


1. 프로젝트 생성

2. Eureka Server

- 아래의 소스가 전부 입니다. ( 의외로 엄청 간단합니다. )

build.gradle

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.3'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'octopus'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

ext {
	set('springCloudVersion', "2023.0.0")
}

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}"
	}
}

tasks.named('test') {
	useJUnitPlatform()
}

EurekaServerApplication.java

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

@SpringBootApplication
@EnableEurekaServer               // 스프링 서비스에서 유레카 서버 활성화
public class EurekaServerApplication {

    public static void main(String[] args) {

        SpringApplication.run(EurekaServerApplication.class, args);
    }

}

application.yml

# 유레카 서버 Port
server:
  port: 8761

spring:
  application:
    name: discovery-service

# eureka 설정
eureka:
  client:
    register-with-eureka: false     # eureka server에 자신을 등록하지 않음. registry에 등록할지 여부. false로 하지 않으면 자기 자신을 클라이언트로 등록함
    fetch-registry: false           # 레지스트리 정보를 로컬에 캐싱하지 않음. registry에 있는 정보들을 가져올지 여부

3. 실행


4. Gradle Jar 빌드

- /build/libs 폴더에 Jar 파일이 생성됩니다.

IntelliJ 에서의 빌드 ( Tasks > build > bootJar )

Linux 에서의 빌드

$ source ./gradlew bootJar

$ . ./gradlew bootJar

5. jar 실행

# java -jar -Dserver.port=9001 [jar 파일경로]/[jar파일]
$ java -jar -Dserver.port=9001 ./build/libs/EurekaServer-0.0.1-SNAPSHOT.jar
# Java version 오류
$ java -jar EurekaServer-0.0.1-SNAPSHOT.jar
Error: LinkageError occurred while loading main class org.springframework.boot.loader.launch.JarLauncher
        java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

https://hermeslog.tistory.com/742

 

[SDKMAN] JDK 버전을 관리하는 Tool 이라고 합니다.

JDK의 버전을 관리해주는 Tool 있다고 합니다. SDKMAN https://sdkman.io/ Home - SDKMAN! the Software Development Kit Manager SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. sdkm

hermeslog.tistory.com

https://sjparkk-dev1og.tistory.com/153

 

SpringBoot Cloud - MSA & Eureka & FeignClient(OpenFeign) & CircuitBreaker(Hystrix & Resilience4J) 차례대로 알아보기 시

들어가며 이번 시간에는 유레카에 대해서 정리한다. 기본적인 개념 정리와 테스트에 대핸 내용을 정리했다. 시리즈 1 - MSA https://sjparkk-dev1og.tistory.com/151 MSA & Eureka & FeignClient(OpenFeign) & CircuitBreaker(

sjparkk-dev1og.tistory.com

https://hermeslog.tistory.com/756

 

[Spring Cloud Netflix] Eureka Client개발

개발환경 JDK : Zulu JDK 17.0.10 SpringBoot 3.2.3 SpringBoot Eureka Client ( 현재 최신 버전 :4.1.0 ) Build Tools : Gradle 1. 프로젝트 생성 2. Eureka Server - 아래의 소스가 전부 입니다. ( 의외로 엄청 간단합니다. ) build.g

hermeslog.tistory.com

 

728x90