SpringCloud(Finchley.SR2)基礎篇:第一章、服務發現(Eureka)
阿新 • • 發佈:2018-11-04
一、Eureka簡介:
Eureka是由Netflix開源的基於REST的服務發現元件,不過出於某種原因2.x以後的版本就停止開源了。Eureka包括Eureka Server(Eureka服務端)和Eucreka Client(Eureka客戶端)。
詳細的介紹將在提高篇進行說明,本篇主要是幫助大家快速實現Eureka入門案例。
二、Eureka Server搭建(服務註冊中心)
2.1搭建Maven父工程
使用idea File->New->Project->SpringInitializr->Next->填寫Group、Artifact->Next->Next->Finish 注意:使用的SpringBoot版本為當前最穩定的最新版2.1.0.RELEASE
刪除一些用不到的檔案目錄後:
父級pom.xml檔案程式碼
<?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> <groupId>com.zou</groupId> <artifactId>springcloud-eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springcloud-eureka</name> <description>演示Eureka</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!-- 子模組 --> <modules> <module>springcloud-eureka-service</module> <module>springcloud-eureka-client</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- jdk版本 --> <java.version>1.8</java.version> <!-- SpringCloud版本號,官方最新穩定版本 --> <spring-cloud.version>Finchley.SR2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!--依賴管理,用於管理spring-cloud的依賴--> <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> </project>
2.1搭建EurekaService子工程,採用SpringBoot專案構建
新增EurekaServer依賴
EurekaService的pom.xml檔案
<?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> <groupId>com.zou</groupId> <artifactId>springcloud-eureka-service</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springcloud-eureka-service</name> <description>Eureka服務註冊中心</description> <!-- 新增父級專案依賴 --> <parent> <groupId>com.zou</groupId> <artifactId>springcloud-eureka</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <dependencies> <!-- Eureka註冊中心依賴 z--> <dependency> <groupId>org.springframework.cloud</groupId> <!-- 注意名稱的改變 和F之前的版本所有區別 --> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> </project>
啟動主類:
package com.zou.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
//該註解表明應用為eureka服務,有可以聯合多個服務作為叢集,對外提供服務註冊以及發現功能
@EnableEurekaServer
public class SpringcloudEurekaServiceApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudEurekaServiceApplication.class, args);
}
}
application.yml配置檔案
spring:
application:
name: eurka-server
server:
port: 8761 #啟動埠
eureka:
instance:
hostname: localhost
client:
#例項是否在eureka伺服器上註冊自己的資訊以供其他服務發現,預設為true
registerWithEureka: false
#此客戶端是否獲取eureka伺服器登錄檔上的註冊資訊,預設為true
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
三、Eureka Client搭建(Eureka客戶端)
pom.xml檔案
<?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>
<groupId>com.zou</groupId>
<artifactId>springcloud-eureka-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springcloud-eureka-client</name>
<description>Eureka客戶端</description>
<!-- 父級專案依賴-->
<parent>
<groupId>com.zou</groupId>
<artifactId>springcloud-eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<dependencies>
<!-- eureka client 客戶端依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
啟動檔案
package com.zou.springcloudeurekaclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
//該註解表明應用既作為eureka例項又為eureka client 可以發現註冊的服務
@EnableEurekaClient
public class SpringcloudEurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudEurekaClientApplication.class, args);
}
}
配置檔案application.yml:
server:
port: 8081 #埠號
spring:
application:
name: eureka-client #應用名稱
eureka:
client:
serviceUrl:
#註冊中心地址
defaultZone: http://localhost:8761/eureka/
四、專案展示
4.1 目錄結構
4.2啟動流程
先啟動
springcloud-eureka-service
再啟動
springcloud-eureka-client
4.3效果展示
訪問 http://localhost:8761/eureka
出現上面的效果表示專案成功完成。
你想知道在真實專案中Eureka是怎麼配置的嗎?
你想知道EurekaServer的REST API嗎?
你想知道Eureka怎麼叢集配置嗎?
你想知道Eureka的引數調優及監控嗎?
你想知道Eureak Server線上擴容嗎?
那麼你可以來看我即將寫的 GitChat
**希望您能有所收穫。**
感謝每一個讀者。
希望你們工作順利。
我也會堅持寫部落格,希望在未來能夠帶給大家更加優秀的知識分享。
我的QQ: 1351307057
大家有什麼問題可以直接在留言區留言,也可以加我QQ發訊息給我。
我如果看到了,會第一時間進行回覆的。