在之前章節(jié)SpringCloud組件:將微服務(wù)提供者注冊到Eureka服務(wù)中心已經(jīng)講解了把服務(wù)注冊到單個Eureka Server
節(jié)點上玄妈,既然我們在SpringCloud組件:Eureka高可用集群部署講到了如何去構(gòu)建Eureka Server 集群
的問題,那么我們該考慮下怎么將服務(wù)注冊
到Eureka Server集群
上呢?
帶著這個疑問來開始本章的內(nèi)容瘟判。
本章目標
將服務(wù)節(jié)點
注冊到Eureka Server集群
。
構(gòu)建項目
使用idea
開發(fā)工具創(chuàng)建SpringBoot
項目迎罗,創(chuàng)建時選擇集成依賴Eureka Discovery
巢掺、Web
等句伶,pom.xml
配置文件如下所示:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>
<dependencies>
<!--Web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Eureka Client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
添加完成依賴后我們需要開始進行配置Eureka Client
相關(guān)信息。
啟用Eureka Client
在入口類XxxApplication
上添加@EnableDiscoveryClient
注解用于啟用Eureka Client
客戶端的相關(guān)依賴配置陆淀,如下所示:
@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudEurekaHighProviderApplication {
//...
}
配置Eureka Client
打開application.yml
配置文件進行配置Eureka
相關(guān)參數(shù)信息考余,我們先看下具體的配置內(nèi)容,如下所示:
# 服務(wù)名稱
spring:
application:
name: hengboy-spring-cloud-eureka-high-provider
# 端口號
server:
port: 20000
# Eureka集群配置信息
eureka:
client:
service-url:
defaultZone: http://node1:10001/eureka/,http://node2:10002/eureka/
主動將服務(wù)注冊到Eureka集群
我們需要注意的是上面的eureka.clinet.service-url.defaultZone
參數(shù)內(nèi)容轧苫,我們通過,
隔開配置了兩個Eureka Server
地址楚堤,這兩個地址則是SpringCloud組件:Eureka高可用集群部署章節(jié)提高的Eureka Server集群
地址。
如果defaultZone
以,
隔開配置了多個Eureka Server
地址浸剩,那么在啟動服務(wù)提供者
時就會主動向配置的多個Eureka Server
地址進行發(fā)送注冊信息
钾军,這樣也就注冊到集群上鳄袍。
運行測試
下面我們來運行測試看下效果绢要,測試步驟如下所示:
- 啟動
node1
環(huán)境服務(wù)注冊中心
- 啟動
node2
環(huán)境服務(wù)注冊中心
- 啟動本章項目
- 訪問
node1
管理界面http://node1:10001查看服務(wù)列表- 訪問
node2
管理界面http://node2:10002查看服務(wù)列表
注意:
node1
以及node2
的啟動方式請查看SpringCloud組件:Eureka高可用集群部署
訪問兩個服務(wù)注冊中心
管理界面你都會發(fā)現(xiàn)如下圖所示:
服務(wù)節(jié)點hengboy-spring-cloud-eureka-high
為注冊中心的名稱,hengboy-spring-cloud-eureka-high-provider
為本章的服務(wù)節(jié)點
拗小。
自動同步到Eureka集群
為什么說會自動同步到Eureka集群
呢重罪?
因為有
eureka.client.fetch-registry
這個參數(shù),而且還是默認為true
哀九,這個參數(shù)配置了是否自動同步服務(wù)列表
剿配,也就是默認就會進行同步的操作。你就算將Eureka Client
注冊到http://node1:10001/eureka/
注冊中心阅束,也會自動同步到http://node2:10002/eureka/
呼胚。
總結(jié)
本章講解了怎么通過主動
以及自動同步
的方式將Eureka Client
注冊到服務(wù)注冊中心集群環(huán)境
中,為了保證完整性息裸,還是建議手動進行配置蝇更,自動同步也有不成功的情況存在沪编。
源碼位置
- SpringBoot配套源碼地址:訪問碼云查看源碼、訪問GitHub查看源碼
- SpringCloud配套源碼地址(
本章源碼在這
):訪問碼云查看源碼年扩,訪問GitHub查看源碼