天天看點

SpringCloud學習之【服務注冊與發現】

springcloud基于eureka的服務注冊與發現

這段時間開始整理之前的springcloud實踐筆記,這裡感謝翟永超大佬的文章springcloud從入門到精通的指導

項目結構

SpringCloud學習之【服務注冊與發現】
注意: 1、springcloud與springboot有比較嚴格的版本對應關系,使用之前請确定好對應相關版本 2、如果沒有特殊需要,建議各子子產品使用各自獨立的依賴,而不同一使用父子產品的pom依賴。不然可能出現沖突問題

首先先建立一個springboot工程,再建立一個名為eureka-server的子子產品工程,并在pom.xml中引入eureka服務注冊中心所需依賴,如下:

通過@enableeurekaserver注解就能啟動一個服務注冊中心

application.properties配置示例如下:

預設設定下,該服務注冊中心也會将自己作為用戶端來嘗試注冊它自己,是以我們需要通過​<code>​eureka.client.register-with-eureka=false​</code>​禁用它的用戶端注冊行為

啟動工程後,通路:http://localhost:6601/ ,可看到頁面如下圖所示:

SpringCloud學習之【服務注冊與發現】

注冊中心就開始運作了,可以看到目前還沒有微服務執行個體注冊

下面我們建立提供服務的用戶端,并向服務注冊中心注冊自己。本文我們主要介紹服務的注冊與發現,是以我們不妨在服務提供方中嘗試着提供一個接口來擷取目前所有的服務資訊。

首先,建立一個命名為eureka-clientspring boot應用,結構如下:

SpringCloud學習之【服務注冊與發現】

pom.xml如下配置:

其次,實作/dc請求處理接口,通過discoveryclient對象,在日志中列印出服務執行個體的相關内容。

應用主類中通過加上@enablediscoveryclient注解,該注解能激活eureka中的discoveryclient實作,這樣才能實作controller中對服務資訊的輸出。

我們在完成了服務内容的實作之後,再繼續對application.properties做一些配置工作,具體如下:

spring.application.name:可以指定微服務的名稱

eureka.client.serviceurl.defaultzone:對應服務注冊中心的配置内容,指定服務注冊中心的位置

server.port:設定不同的端口。

啟動該工程後,再次通路:http://localhost:6601/。 可以看到我們定義的服務被成功注冊了。

當然,我們也可以通過直接通路eureka-client服務提供的/dc接口來擷取目前的服務清單,隻需要通路:http://localhost:6602/dc, 我們可以得到如下輸出傳回: