spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊
本文主要內容:
1:管理頁面主機名及訪問ip資訊提示修改
2:獲取當前註冊中心的服務列表及每個服務對於的服務提供者列表
本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第八篇:《修改服務名稱及獲取註冊中心註冊者的資訊》。
本文是幾個維度中的第一個維度:註冊與發現維度配置中心管理之Eureka相關教程第五篇。
一:主機名及IP資訊修改
在eureka管理頁面顯示的不是很友好。怎修改頁面機器名稱及訪問連線URL的提示,來方便管理呢?
主要由如下圖的兩個地方修改
1:修改服務名稱
先來看看當前問題:在註冊中心status中顯示的是機器ip,怎麼修改成顯示自己想要的?方便管理呢?
修改對應專案YML檔案,在eureka相關配置中,新增 instance: instance-id: 自定義的名稱。需要注意的是,這個instance需要和client對齊的。
如我們想要修改payment8001這個專案對應的自定義名稱為paymeng8001。修改如下:
instance: instance-id: payment8001
如下圖:
修改後,熟悉註冊中心的管理頁面:
2:修改範圍資訊中IP資訊提示。
現在問題:將滑鼠放置在服務上,沒有ip提示。
修改方法:
同樣,在需要修改的服務yml檔案的eureka相關配置中在instance-id下面新增prefer-ip-adderss:ture
比如我們修改payment8002的:
新增完成後,重新整理頁面。我們可以看到:
以上修改相應程式碼對應git的版本:
為什麼要新增這些呢?是為了訪問嗎服務管理。以後如果服務很多的話,我們想要知道對應服務的機器名稱或者是ip是什麼的時候,直接通過頁面就可以檢視了。
二:獲取當前註冊中心的服務列表及每個服務對於的服務提供者列表
這裡就以payment8001為例來獲取。
2.1:在controller中新增
@Resource
private DiscoveryClient discoveryClient;
2.2:獲取註冊中心所註冊的服務名稱(也就是application的名字)
//獲取註冊中心註冊的服務列表。對應的就是Application
List<String> applicationList = discoveryClient.getServices();
2.3:根據服務名稱獲取到對應的服務例項。也就是application後面的status資訊
//獲取每個服務的提供者。對應的就是Application的status
List<ServiceInstance> instanceList = discoveryClient.getInstances(applicationName);
2.4:修改啟動類
在啟動類上新增啟用discoverClient的註解
2.5:寫測試類進行訪問測試。
編輯
重啟後,訪問,檢視效果:
獲取到的資訊和我們實際一致。說明從註冊中心獲取當前註冊的服務資訊及服務對應例項資訊獲取成功。
本案例程式碼對應git上面的tag版本是: v0.1.3-20200504