Rejestracja usługi w Eureka

W tym rozdziale dowiesz się szczegółowo, jak zarejestrować aplikację usługi Spring Boot Micro na serwerze Eureka. Przed zarejestrowaniem aplikacji upewnij się, że serwer Eureka działa na porcie 8761 lub najpierw zbuduj serwer Eureka i uruchom go. Więcej informacji na temat budowy serwera Eureka można znaleźć w poprzednim rozdziale.

Najpierw musisz dodać następujące zależności w naszym pliku konfiguracji kompilacji, aby zarejestrować mikrousługę na serwerze Eureka.

Użytkownicy Maven mogą dodać następujące zależności do pom.xml plik -

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

Użytkownicy Gradle mogą dodawać następujące zależności do build.gradle plik -

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

Teraz musimy dodać adnotację @EnableEurekaClient w głównym pliku klasy aplikacji Spring Boot. Adnotacja @EnableEurekaClient sprawia, że ​​aplikacja Spring Boot działa jako klient Eureka.

Główna aplikacja Spring Boot jest taka, jak podano poniżej -

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);
   }
}

Aby zarejestrować aplikację Spring Boot na serwerze Eureka, musimy dodać następującą konfigurację w naszym pliku application.properties lub application.yml i określić adres URL serwera Eureka w naszej konfiguracji.

Kod pliku application.yml znajduje się poniżej -

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

Kod pliku application.properties jest podany poniżej -

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

Teraz dodaj punkt końcowy Rest, aby zwrócić ciąg w głównej aplikacji Spring Boot oraz zależność sieciową Spring Boot Starter w pliku konfiguracji kompilacji. Przestrzegaj kodu podanego poniżej -

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

Cały plik konfiguracyjny jest podany poniżej.

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

Możesz utworzyć wykonywalny plik JAR i uruchomić aplikację Spring Boot za pomocą następujących poleceń Maven lub Gradle -

W przypadku Mavena możesz użyć następującego polecenia -

mvn clean install

Po „BUILD SUCCESS” można znaleźć plik JAR w katalogu docelowym.

W przypadku Gradle możesz użyć następującego polecenia -

gradle clean build

Po komunikacie „BUILD SUCCESSFUL” można znaleźć plik JAR w katalogu build / libs.

Teraz uruchom plik JAR za pomocą polecenia, jak pokazano -

java –jar <JARFILE>

Teraz aplikacja została uruchomiona na porcie Tomcat 8080 i aplikacja klienta Eureka jest zarejestrowana na serwerze Eureka, jak pokazano poniżej -

Naciśnij adres URL http: // localhost: 8761 / w przeglądarce internetowej, a zobaczysz, że aplikacja klienta Eureka jest zarejestrowana na serwerze Eureka.

Teraz kliknij adres URL http://localhost:8080/ w przeglądarce internetowej i zobacz dane wyjściowe Rest Endpoint.