Khởi động mùa xuân - Máy chủ Eureka
Máy chủ Eureka là một ứng dụng lưu trữ thông tin về tất cả các ứng dụng dịch vụ khách. Mọi dịch vụ Micro sẽ đăng ký vào máy chủ Eureka và máy chủ Eureka biết tất cả các ứng dụng khách đang chạy trên mỗi cổng và địa chỉ IP. Máy chủ Eureka còn được gọi là Máy chủ khám phá.
Trong chương này, chúng ta sẽ tìm hiểu chi tiết về Cách xây dựng máy chủ Eureka.
Xây dựng máy chủ Eureka
Máy chủ Eureka đi kèm với gói Spring Cloud. Đối với điều này, chúng tôi cần phát triển máy chủ Eureka và chạy nó trên cổng mặc định 8761.
Truy cập trang chủ Spring Initializer https://start.spring.io/và tải xuống dự án Spring Boot với sự phụ thuộc vào máy chủ Eureka. Nó được hiển thị trong ảnh chụp màn hình bên dưới -
Sau khi tải xuống dự án trong tệp lớp Ứng dụng Spring Boot chính, chúng ta cần thêm chú thích @EnableEurekaServer. Chú thích @EnableEurekaServer được sử dụng để làm cho ứng dụng Spring Boot của bạn hoạt động như một Máy chủ Eureka.
Mã cho tệp lớp ứng dụng Spring Boot chính như dưới đây:
package com.tutorialspoint.eurekaserver;
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);
}
}
Đảm bảo rằng phần phụ thuộc máy chủ Eureka của đám mây mùa xuân được thêm vào tệp cấu hình bản dựng của bạn.
Mã cho sự phụ thuộc của người dùng Maven được hiển thị bên dưới:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
Mã cho sự phụ thuộc của người dùng Gradle được cung cấp bên dưới:
compile('org.springframework.cloud:spring-cloud-starter-eureka-server')
Tệp cấu hình bản dựng hoàn chỉnh được cung cấp bên dưới:
Maven 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>eurekaserver</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>eurekaserver</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-server</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>
</project>
Gradle – 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-server')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
Theo mặc định, Máy chủ Eureka tự đăng ký khám phá. Bạn nên thêm cấu hình đã cho bên dưới vào tệp application.properties hoặc tệp application.yml của mình.
tệp application.properties được cung cấp bên dưới -
eureka.client.registerWithEureka = false
eureka.client.fetchRegistry = false
server.port = 8761
Tệp application.yml được cung cấp bên dưới:
eureka:
client:
registerWithEureka: false
fetchRegistry: false
server:
port: 8761
Bây giờ, 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 lệnh Maven hoặc Gradle được hiển thị bên dưới:
Đối với Maven, sử dụng lệnh như hình dưới đây:
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 hiển thị bên dưới:
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ờ, hãy chạy tệp JAR bằng cách sử dụng lệnh sau:
java –jar <JARFILE>
Bạn có thể thấy rằng ứng dụng đã khởi động trên cổng Tomcat 8761 như hình dưới đây:
Bây giờ, hãy nhấn vào URL http://localhost:8761/ trong trình duyệt web của bạn và bạn có thể tìm thấy Máy chủ Eureka đang chạy trên cổng 8761 như hình dưới đây -