Spring Boot 教程:Eureka 服务器

Eureka 服务器是一个应用,它包含所有客户端服务应用的信息。每个微服务都会注册到 Eureka 服务器并且 Eureka 服务器知道所有客户端应用的端口和 IP 地址。Eureka 服务器也被称为发现服务器。
本文将带你学习如何搭建 Eureka 服务器。
搭建 Eureka 服务器
Eureka 服务器与 Spring Cloud 打包发布。基于此,我们需要开发 Eureka 服务器并将它运行于缺省的 8761 端口上。
访问 Spring 初始化器主页 https://start.spring.io/ 并下载 Spring Boot 工程的 Eureka 服务器依赖。如下图所示:

工程下载之后,在主 Spring Boot 应用类文件中,我们要加上 @EnableEurekaServer 注解。@EnableEurekaServer 注解可使你的 Spring Boot 应用用作 Eureka 服务器。
主 Spring Boot 应用类文件如下所示:
1 package com.tutorialspoint.eurekaserver; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 7 @SpringBootApplication 8 @EnableEurekaServer 9 public class EurekaserverApplication { 10 public static void main(String[] args) { 11 SpringApplication.run(EurekaserverApplication.class, args); 12 } 13 }
确保你的构建配置文件中已经加入了 Spring cloud Eureka 服务器依赖。
Maven 用户的依赖代码如下:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
Gradle 用户的依赖代码如下:
compile('org.springframework.cloud:spring-cloud-starter-eureka-server')
完整的构建配置代码文件如下所示:
Maven pom.xml
1 <?xml version = "1.0" encoding = "UTF-8"?> 2 <project xmlns = "http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 5 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 7 <modelVersion>4.0.0</modelVersion> 8 <groupId>com.tutorialspoint</groupId> 9 <artifactId>eurekaserver</artifactId> 10 <version>0.0.1-SNAPSHOT</version> 11 <packaging>jar</packaging> 12 <name>eurekaserver</name> 13 <description>Demo project for Spring Boot</description> 14 15 <parent> 16 <groupId>org.springframework.boot</groupId> 17 <artifactId>spring-boot-starter-parent</artifactId> 18 <version>1.5.9.RELEASE</version> 19 <relativePath/> <!-- lookup parent from repository --> 20 </parent> 21 22 <properties> 23 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 24 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 25 <java.version>1.8</java.version> 26 <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> 27 </properties> 28 29 <dependencies> 30 <dependency> 31 <groupId>org.springframework.cloud</groupId> 32 <artifactId>spring-cloud-starter-eureka-server</artifactId> 33 </dependency> 34 35 <dependency> 36 <groupId>org.springframework.boot</groupId> 37 <artifactId>spring-boot-starter-test</artifactId> 38 <scope>test</scope> 39 </dependency> 40 </dependencies> 41 42 <dependencyManagement> 43 <dependencies> 44 <dependency> 45 <groupId>org.springframework.cloud</groupId> 46 <artifactId>spring-cloud-dependencies</artifactId> 47 <version>${spring-cloud.version}</version> 48 <type>pom</type> 49 <scope>import</scope> 50 </dependency> 51 </dependencies> 52 </dependencyManagement> 53 54 <build> 55 <plugins> 56 <plugin> 57 <groupId>org.springframework.boot</groupId> 58 <artifactId>spring-boot-maven-plugin</artifactId> 59 </plugin> 60 </plugins> 61 </build> 62 63 </project>
Gradle – build.gradle
1 buildscript { 2 ext { 3 springBootVersion = '1.5.9.RELEASE' 4 } 5 repositories { 6 mavenCentral() 7 } 8 dependencies { 9 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 10 } 11 } 12 13 apply plugin: 'java' 14 apply plugin: 'eclipse' 15 apply plugin: 'org.springframework.boot' 16 17 group = 'com.tutorialspoint' 18 version = '0.0.1-SNAPSHOT' 19 sourceCompatibility = 1.8 20 21 repositories { 22 mavenCentral() 23 } 24 ext { 25 springCloudVersion = 'Edgware.RELEASE' 26 } 27 dependencies { 28 compile('org.springframework.cloud:spring-cloud-starter-eureka-server') 29 testCompile('org.springframework.boot:spring-boot-starter-test') 30 } 31 dependencyManagement { 32 imports { 33 mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" 34 } 35 }
缺省情况下,Eureka 服务器会将自身注册到发现中。你应当加入以下配置到 application.properties 或 application.yml 文件中:
application.properties 文件如下所示:
1 eureka.client.registerWithEureka = false 2 eureka.client.fetchRegistry = false 3 server.port = 8761
application.yml 文件如下所示:
1 eureka: 2 client: 3 registerWithEureka: false 4 fetchRegistry: false 5 server: 6 port: 8761
现在可以使用 Maven 或 Gradle 命令创建可执行 executable JAR 文件并运行 Spring Boot 应用了:
Maven 命令如下:
mvn clean install
在 “BUILD SUCCESS” 之后,你可以在 target 目录下找到 JAR 文件。
Gradle 可以使用以下命令:
gradle clean build
在 “BUILD SUCCESSFUL” 之后,你可以在 build/libs 目录下找到 JAR 文件。
使用以下命令运行 JAR 文件:
java –jar <JARFILE>
应用已在 Tomcat 8761 端口启动,如下图所示:

接下来,在 web 浏览器中单击 URL http://localhost:8761/,可以发现 Eureka 服务器已经运行在 8761 端口,如下所示:


浙公网安备 33010602011771号