一、SpringCloud版本
本文介紹的Springboot版本爲2.1.1.RELEASE,SpringCloud版本爲Greenwich.RC1,JDK版本爲1.8,集成環境爲IntelliJ IDEA
二、Eureka服務端介紹
要在項目中包含Eureka服務器,請使用組org.springframework.cloud和工件id spring-cloud-starter-eureka-server的啓動器。服務器具有一個帶有UI的主頁,並且根據/eureka/*下的正常Eureka功能的HTTP API端點。
Eureka服務器沒有後端存儲,但是註冊表中的服務實例都必須發送心跳以保持其註冊更新(因此可以在內存中完成)。客戶端還具有eureka註冊的內存緩存(因此,他們不必爲註冊表提供每個服務請求)。
默認情況下,每個Eureka服務器也是一個Eureka客戶端,並且需要(至少一個)服務URL來定位對等體。如果您不提供該服務將運行和工作,但它將淋浴您的日誌與大量的噪音無法註冊對等體。
三、創建Eureka服務中心
- 3.1創建
首先創建一個module工程,取名爲cloudser,選擇Spring Initializr,下一步
設置完項目屬性後,選擇Cloud Discovery,再勾選上Eureka Server,直接完成就可以了
創建完成後,pom.xml如下,後續的module工程均以此pom.xml做爲父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 http://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.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jthao</groupId>
<artifactId>cloudser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cloudser</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.RC1</spring-cloud.version>
</properties>
<dependencies>
<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>
</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>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
- 3.2啓動
啓動一個eureka服務註冊中心,只需在啓動類上增加@EnableEurekaServer註解即可
package com.jthao.cloudser;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class CloudserApplication {
public static void main(String[] args) {
SpringApplication.run(CloudserApplication.class, args);
}
}
eureka server默認也是一個eureka client,所以須在配置文件增加eureka.client.register-with-eureka和eureka.client.fetch-registry來表明自己是一個server,其中serviceUrl指向與本地實例相同的主機
server.port=8001
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
- 3.3訪問
eureka server是有訪問頁面的,在瀏覽器中輸入http://localhost:8001/即可訪問,可以看到紅框中是沒有服務沒發現,也就是沒有client,下一章會講解服務提供者實現