1. 程式人生 > >【SpringCloud Greenwich版本】第一章:服務註冊中心(eureka)

【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,下一章會講解服務提供者實現
在這裡插入圖片描述