유레카 서비스 등록

이 장에서는 Spring Boot Micro 서비스 애플리케이션을 Eureka 서버에 등록하는 방법에 대해 자세히 알아 봅니다. 응용 프로그램을 등록하기 전에 Eureka Server가 포트 8761에서 실행 중인지 확인하거나 먼저 Eureka Server를 빌드하고 실행하십시오. Eureka 서버 구축에 대한 자세한 내용은 이전 장을 참조하십시오.

먼저 빌드 구성 파일에 다음 종속성을 추가하여 Eureka 서버에 마이크로 서비스를 등록해야합니다.

Maven 사용자는 다음 종속성을 pom.xml 파일-

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

Gradle 사용자는 다음 종속성을 build.gradle 파일-

compile('org.springframework.cloud:spring-cloud-starter-eureka')

이제 기본 Spring Boot 애플리케이션 클래스 파일에 @EnableEurekaClient 주석을 추가해야합니다. @EnableEurekaClient 주석은 Spring Boot 애플리케이션이 Eureka 클라이언트로 작동하도록합니다.

주요 Spring Boot 애플리케이션은 다음과 같습니다.

package com.tutorialspoint.eurekaclient;

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

@SpringBootApplication
@EnableEurekaClient
public class EurekaclientApplication {
   public static void main(String[] args) {
      SpringApplication.run(EurekaclientApplication.class, args);
   }
}

Spring Boot 애플리케이션을 Eureka Server에 등록하려면 application.properties 파일 또는 application.yml 파일에 다음 구성을 추가하고 구성에 Eureka Server URL을 지정해야합니다.

application.yml 파일의 코드는 다음과 같습니다.

eureka:
   client:
      serviceUrl:
         defaultZone: http://localhost:8761/eureka
      instance:
      preferIpAddress: true
spring:
   application:
      name: eurekaclient

application.properties 파일의 코드는 다음과 같습니다.

eureka.client.serviceUrl.defaultZone  = http://localhost:8761/eureka
eureka.client.instance.preferIpAddress = true
spring.application.name = eurekaclient

이제 기본 Spring Boot 애플리케이션에서 String을 반환하고 빌드 구성 파일에서 Spring Boot Starter 웹 종속성을 반환하는 Rest Endpoint를 추가합니다. 아래 주어진 코드를 관찰하십시오-

package com.tutorialspoint.eurekaclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaclientApplication {
   public static void main(String[] args) {
      SpringApplication.run(EurekaclientApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String home() {
      return "Eureka Client application";
   }
}

전체 구성 파일은 다음과 같습니다.

For Maven user - pom.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.tutorialspoint</groupId>
   <artifactId>eurekaclient</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>eurekaclient</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.9.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
      <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>
   
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
   
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>   
   </build>
   
</projecta>

For Gradle user – build.gradle

buildscript {
   ext {
      springBootVersion = '1.5.9.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

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

repositories {
   mavenCentral()
}
ext {
   springCloudVersion = 'Edgware.RELEASE'
}
dependencies {
   compile('org.springframework.cloud:spring-cloud-starter-eureka')
   testCompile('org.springframework.boot:spring-boot-starter-test')
   compile('org.springframework.boot:spring-boot-starter-web')   
}
dependencyManagement {
   imports {
      mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
   }
}

실행 가능한 JAR 파일을 생성하고 다음 Maven 또는 Gradle 명령을 사용하여 Spring Boot 애플리케이션을 실행할 수 있습니다.

Maven의 경우 다음 명령을 사용할 수 있습니다.

mvn clean install

“BUILD SUCCESS”후 대상 디렉토리에서 JAR 파일을 찾을 수 있습니다.

Gradle의 경우 다음 명령을 사용할 수 있습니다.

gradle clean build

“BUILD SUCCESSFUL”후에 build / libs 디렉토리에서 JAR 파일을 찾을 수 있습니다.

이제 다음과 같이 명령을 사용하여 JAR 파일을 실행하십시오.

java –jar <JARFILE>

이제 응용 프로그램은 Tomcat 포트 8080에서 시작되었으며 Eureka Client 응용 프로그램은 아래와 같이 Eureka Server에 등록됩니다.

웹 브라우저에서 URL http : // localhost : 8761 /을 누르면 Eureka Client 애플리케이션이 Eureka Server에 등록 된 것을 볼 수 있습니다.

이제 URL을 누르십시오. http://localhost:8080/ 웹 브라우저에서 Rest Endpoint 출력을 확인하십시오.