Eureka是什么呢?Eureka是服务注册注册中心,微服务由于是分多个模块进行开发、所以里面会涉及各个模块的调用,每个模块对外提供的服务需要到哪里去注册,消费方调用的时候又需要去哪里调用?这里面就涉及的服务的相关概念了、调用服务的时候需要知道哪些服务可用、地址是什么,那么Eureka就提供了这个一系列功能;Eureka是一个服务治理的套件,是基于Rest的服务、并且提供基于Java的客户端组件,可以轻松的将服务注册到Spring Cloud Eureka中心进行管理。
本章我们将从发布Eureka Server开始学习起,那么我们将要怎么去创建一个Eureka Server呢?
首先创建一个Spring 项目,取名eureka-server,创建步骤如下图所示
第一步选择new-Spring Initializr
第二步
第三步
这三步操作过后下面的直接next就行了、创建好项目后,会自动配置eureka-server相关的pom。下面贴出完成的pom文件配置
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<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>
</project>
pom依赖配置好以后,我们需要对Application 启动类添加EurekaServer相关的注解。
package com.example.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/** 表示开启Eureka Server*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
这个类是不是跟我们普通的Spring boot启动类没什么区别呀,只是加了一个@EnableEurekaServer表示这是一个Eureka Server。
做好了这些我们就可以启动项目了吗?答案当然不是,要完整的配置一个Eureka Server还需要在对应的application.yml配置文件配置一些基本属性,具体配置如下
server:
port: 8761 #eureka-server默认端口号
eureka:
instance:
hostname: localhost #主机名
client:
#由于该应用为服务中心,不需要向其他服务中心注册、所以设置为false
register-with-eureka: false
#注册中心的职责就是维护服务实例,不需要去检索服务,所以也设置为false
fetch-registry: false
service-url:
defalutZone: http://${eureka.instance.hostname}:${server.port}/eureka/
做完这些以后,我们来运行EurekaServerApplication来启动我们的Eureka-Server,启动完成后,由于我们刚配置的端口号是8761,所以我们只需要在浏览器访问http://localhost:8761/,就可以看到Eureka-Server的控制台页面啦
看到这个页面代表你已经完成了Eureka-Server服务中心的创建,由于本人自己也在从头开始学习Spring Cloud,所以有不足之处欢迎指出,Thanks。
最后附上Demo的github链接:github地址