Boot Musim Semi - Server Eureka

Eureka Server adalah sebuah aplikasi yang menyimpan informasi tentang semua aplikasi layanan klien. Setiap layanan Mikro akan mendaftar ke server Eureka dan server Eureka mengetahui semua aplikasi klien yang berjalan di setiap port dan alamat IP. Eureka Server juga dikenal sebagai Discovery Server.

Pada bab ini, kita akan mempelajari secara detail tentang Bagaimana membangun server Eureka.

Membangun Server Eureka

Server Eureka hadir dengan bundel Spring Cloud. Untuk ini, kita perlu mengembangkan server Eureka dan menjalankannya pada port default 8761.

Kunjungi beranda Spring Initializer https://start.spring.io/dan unduh proyek Spring Boot dengan ketergantungan server Eureka. Itu ditunjukkan pada gambar di bawah -

Setelah mengunduh proyek dalam file kelas Aplikasi Spring Boot utama, kita perlu menambahkan anotasi @EnableEurekaServer. Anotasi @EnableEurekaServer digunakan untuk membuat aplikasi Spring Boot Anda berfungsi sebagai Server Eureka.

Kode untuk file kelas aplikasi Spring Boot utama adalah seperti yang ditunjukkan di bawah ini -

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

Pastikan dependensi server Spring cloud Eureka ditambahkan di file konfigurasi build Anda.

Kode untuk ketergantungan pengguna Maven ditunjukkan di bawah ini -

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

Kode untuk ketergantungan pengguna Gradle diberikan di bawah ini -

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

File konfigurasi build lengkap diberikan di bawah ini -

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

Secara default, Server Eureka mendaftarkan dirinya ke dalam penemuan. Anda harus menambahkan konfigurasi yang diberikan di bawah ini ke dalam file application.properties atau file application.yml.

File application.properties diberikan di bawah ini -

eureka.client.registerWithEureka = false
eureka.client.fetchRegistry = false
server.port = 8761

File application.yml diberikan di bawah ini -

eureka:
   client:
      registerWithEureka: false
      fetchRegistry: false
server:
   port: 8761

Sekarang, Anda dapat membuat file JAR yang dapat dieksekusi, dan menjalankan aplikasi Spring Boot dengan menggunakan perintah Maven atau Gradle yang ditunjukkan di bawah ini -

Untuk Maven, gunakan perintah seperti yang ditunjukkan di bawah ini -

mvn clean install

Setelah “BUILD SUCCESS”, Anda dapat menemukan file JAR di bawah direktori target.

Untuk Gradle, Anda dapat menggunakan perintah yang ditunjukkan di bawah ini -

gradle clean build

Setelah "BUILD SUCCESSFUL", Anda dapat menemukan file JAR di bawah direktori build / libs.

Sekarang, jalankan file JAR dengan menggunakan perintah berikut -

java –jar <JARFILE>

Anda dapat menemukan bahwa aplikasi telah dimulai pada port Tomcat 8761 seperti yang ditunjukkan di bawah ini -

Sekarang, tekan URL http://localhost:8761/ di browser web Anda dan Anda dapat menemukan Server Eureka yang berjalan pada port 8761 seperti yang ditunjukkan di bawah ini -