Đăng ký dịch vụ với Eureka

Trong chương này, bạn sẽ tìm hiểu chi tiết về Cách đăng ký ứng dụng dịch vụ Spring Boot Micro vào Máy chủ Eureka. Trước khi đăng ký ứng dụng, hãy đảm bảo Máy chủ Eureka đang chạy trên cổng 8761 hoặc trước tiên hãy xây dựng Máy chủ Eureka và chạy nó. Để biết thêm thông tin về việc xây dựng máy chủ Eureka, bạn có thể tham khảo chương trước.

Trước tiên, bạn cần thêm các phần phụ thuộc sau vào tệp cấu hình bản dựng của chúng tôi để đăng ký dịch vụ vi mô với máy chủ Eureka.

Người dùng Maven có thể thêm các phần phụ thuộc sau vào pom.xml tập tin -

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

Người dùng Gradle có thể thêm các phần phụ thuộc sau vào build.gradle tập tin -

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

Bây giờ, chúng ta cần thêm chú thích @EnableEurekaClient trong tệp lớp ứng dụng Spring Boot chính. Chú thích @EnableEurekaClient làm cho ứng dụng Spring Boot của bạn hoạt động như một ứng dụng khách Eureka.

Ứng dụng Spring Boot chính như dưới đây:

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

Để đăng ký ứng dụng Spring Boot vào Máy chủ Eureka, chúng ta cần thêm cấu hình sau vào tệp application.properties hoặc tệp application.yml và chỉ định URL Máy chủ Eureka trong cấu hình của chúng tôi.

Mã cho tệp application.yml được cung cấp bên dưới:

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

Mã cho tệp application.properties được cung cấp bên dưới:

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

Bây giờ, hãy thêm Rest Endpoint để trả về Chuỗi trong ứng dụng Spring Boot chính và phần phụ thuộc web Spring Boot Starter trong tệp cấu hình xây dựng. Hãy quan sát đoạn mã dưới đây -

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

Toàn bộ tệp cấu hình được đưa ra bên dưới.

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

Bạn có thể tạo tệp JAR thực thi và chạy ứng dụng Spring Boot bằng cách sử dụng các lệnh Maven hoặc Gradle sau:

Đối với Maven, bạn có thể sử dụng lệnh sau:

mvn clean install

Sau khi “XÂY DỰNG THÀNH CÔNG”, bạn có thể tìm thấy tệp JAR trong thư mục đích.

Đối với Gradle, bạn có thể sử dụng lệnh sau:

gradle clean build

Sau khi “XÂY DỰNG THÀNH CÔNG”, bạn có thể tìm thấy tệp JAR trong thư mục build / libs.

Bây giờ, chạy tệp JAR bằng cách sử dụng lệnh như minh họa -

java –jar <JARFILE>

Bây giờ, ứng dụng đã khởi động trên cổng Tomcat 8080 và ứng dụng Máy khách Eureka được đăng ký với Máy chủ Eureka như hình dưới đây -

Nhấn vào URL http: // localhost: 8761 / trong trình duyệt web của bạn và bạn có thể thấy ứng dụng Eureka Client đã được đăng ký với Eureka Server.

Bây giờ hãy nhấn vào URL http://localhost:8080/ trong trình duyệt web của bạn và xem đầu ra Điểm cuối còn lại.