【SpringCloud Greenwich版本】第一章:服務註冊中心(eureka)
一、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,下一章會講解服務提供者實現