Spring Cloud Eureka 服務(wù)治理

服務(wù)治理是微服務(wù)架構(gòu)中最為核心和基礎(chǔ)的模塊,它主要用來(lái)實(shí)現(xiàn)各個(gè)微服務(wù)實(shí)例的自動(dòng)化注冊(cè)與發(fā)現(xiàn)。

Spring Cloud通過(guò)為Eureka增加了Spring Boot風(fēng)格的自動(dòng)化配置,我們只需要通過(guò)簡(jiǎn)單引入依賴和注解配置就能讓Spring Boot構(gòu)建的微服務(wù)應(yīng)用輕松地與Eureka服務(wù)治理體系進(jìn)行整合。

Spring Cloud Eureka包含了服務(wù)端和客戶端。Eureka服務(wù)端,也稱為服務(wù)注冊(cè)中心,Eureka客戶端,主要處理服務(wù)的注冊(cè)與發(fā)現(xiàn)。

服務(wù)端

  1. 引入依賴
<dependency>
    <groupId>org.springframeword.cloud</groudId>
    <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
  1. 注解激活
    @EnableEurekaServer

3.application.properties屬性配置

server.port=1111

eureka.instance.hostname=
eureka.client.register-with-eureka=false # 由于該應(yīng)用為注冊(cè)中心,所以設(shè)置為false,代表不向注冊(cè)中心注冊(cè)自己
eureka.client.fetch-registry=false # 由于注冊(cè)中心的職責(zé)就是維護(hù)服務(wù)實(shí)例,它并不需要去檢索服務(wù),所以設(shè)置為false
eureka.client.serviceUrl.defaultZone=http ://${eureka.instance.hostname}:${server.port}/eureka/

客戶端

  1. 引入依賴
<dependency>
    <groupId>org.springframeword.cloud</groudId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
  1. 注解激活
    @EnableDiscoveryClient

  2. application.properties屬性配置

# 自報(bào)家門
spring.application.name=xxx
# 指定服務(wù)注冊(cè)中心的地址
eureka.client.serviceUrl.defaultZone=http: //localhost:1111/eureka/

如果我們不想使用主機(jī)名來(lái)定義注冊(cè)中心的地址,也可以使用IP地址的形式,但是需要在配置文件中增加eureka.instance.prefer-ip-address=true,該值默認(rèn)為false

  1. 代碼中使用DiscoveryClient的對(duì)象(通過(guò)注入),獲取從服務(wù)中心獲取的服務(wù)相關(guān)的信息

服務(wù)消費(fèi)

服務(wù)消費(fèi)方是Eureka服務(wù)治理下的一個(gè)普通的微服務(wù)(客戶端),因此需要按照客戶端配置,并與其他微服務(wù)進(jìn)行通信即可,通信方式點(diǎn)我。

配置詳解

在實(shí)際使用Spring Cloud Eureka的過(guò)程中,幾乎都是對(duì)Eureka客戶端進(jìn)行配置。

服務(wù)端的配置參考org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean類進(jìn)一步學(xué)習(xí),這些參數(shù)均以eureka.server作為前綴。

客戶端的配置主要分為以下兩方面:

  • 服務(wù)注冊(cè)相關(guān)的配置:包括注冊(cè)中心的地址、服務(wù)獲取的間隔時(shí)間、可用區(qū)域等
  • 服務(wù)實(shí)例相關(guān)的配置:包括服務(wù)實(shí)例的名稱、IP地址、端口號(hào)、健康檢查路徑等

服務(wù)注冊(cè)相關(guān)的的配置參考org.springframeword.cloud.netflix.eureka.EurekaClientConfigBean類,這些配置信息都已eureka.client為前綴。

服務(wù)實(shí)例相關(guān)的配置參考ort.springframework.cloud.netlix.eureka.EurekaInstanceConfigBean類,這些配置信息都已enreka.instance為前綴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容