Spring Boot - Servidor Eureka
Eureka Server es una aplicación que contiene la información sobre todas las aplicaciones de servicio al cliente. Cada servicio Micro se registrará en el servidor Eureka y el servidor Eureka conoce todas las aplicaciones cliente que se ejecutan en cada puerto y dirección IP. Eureka Server también se conoce como Discovery Server.
En este capítulo, aprenderemos en detalle sobre cómo construir un servidor Eureka.
Construyendo un servidor Eureka
Eureka Server viene con el paquete de Spring Cloud. Para ello, necesitamos desarrollar el servidor Eureka y ejecutarlo en el puerto predeterminado 8761.
Visite la página de inicio de Spring Initializer https://start.spring.io/y descargue el proyecto Spring Boot con dependencia del servidor Eureka. Se muestra en la captura de pantalla a continuación:
Después de descargar el proyecto en el archivo de clase principal de la aplicación Spring Boot, necesitamos agregar la anotación @EnableEurekaServer. La anotación @EnableEurekaServer se utiliza para hacer que su aplicación Spring Boot actúe como un servidor Eureka.
El código para el archivo de clase principal de la aplicación Spring Boot es el que se muestra a continuación:
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);
}
}
Asegúrese de que la dependencia del servidor Spring Cloud Eureka esté agregada en su archivo de configuración de compilación.
El código para la dependencia del usuario de Maven se muestra a continuación:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
El código para la dependencia del usuario de Gradle se proporciona a continuación:
compile('org.springframework.cloud:spring-cloud-starter-eureka-server')
El archivo de configuración de compilación completo se proporciona a continuación:
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}"
}
}
De forma predeterminada, Eureka Server se registra en el descubrimiento. Debe agregar la configuración dada a continuación en su archivo application.properties o en el archivo application.yml.
El archivo application.properties se proporciona a continuación:
eureka.client.registerWithEureka = false
eureka.client.fetchRegistry = false
server.port = 8761
El archivo application.yml se proporciona a continuación:
eureka:
client:
registerWithEureka: false
fetchRegistry: false
server:
port: 8761
Ahora, puede crear un archivo JAR ejecutable y ejecutar la aplicación Spring Boot utilizando los comandos de Maven o Gradle que se muestran a continuación:
Para Maven, use el comando como se muestra a continuación:
mvn clean install
Después de "BUILD SUCCESS", puede encontrar el archivo JAR en el directorio de destino.
Para Gradle, puede usar el comando que se muestra a continuación:
gradle clean build
Después de "BUILD SUCCESSFUL", puede encontrar el archivo JAR en el directorio build / libs.
Ahora, ejecute el archivo JAR usando el siguiente comando:
java –jar <JARFILE>
Puede encontrar que la aplicación se ha iniciado en el puerto 8761 de Tomcat como se muestra a continuación:
Ahora, presiona la URL http://localhost:8761/ en su navegador web y puede encontrar el servidor Eureka ejecutándose en el puerto 8761 como se muestra a continuación: