国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot Admin2.X監控的服務context-path問題

SHERlocked93 / 2609人閱讀

摘要:在使用進行監控時,如果被監控的服務沒有加的話是不會有任何問題的,一旦服務加了的配置,監控就會失敗。歡迎加入我的知識星球,一起交流技術,免費學習猿天地的課程目前星球中正在星主的帶領下組隊學習,等你哦

在使用Spring Boot Admin進行監控時,如果被監控的服務沒有加context-path的話是不會有任何問題的,一旦服務加了context-path的配置,監控就會失敗。

下圖是正常情況的顯示:

我們給被監控的服務增加一個context-path:

server.servlet.context-path=/yinjihuan

當被監控的服務增加了context-path之后,這邊就會報異常了,如下圖:

原因是什么呢?

這是因為加了context-path后actuator的訪問路徑都發生變化了,默認的路徑都訪問不到,拿不到數據導致的。

如何解決呢?

大家看上面貼的圖片,右上角顯示了健康狀態監測的地址:

http://192.168.31.244:8083/
http://192.168.31.244:8083/actuator
http://192.168.31.244:8083/actuator/health

在沒加context-path之前,就是這個地址去訪問的,加了之后訪問的時候就要把context-path給加上,也就是變成了下面的信息:

http://192.168.31.244:8083/yinjihuan
http://192.168.31.244:8083/yinjihuan/actuator
http://192.168.31.244:8083/yinjihuan/actuator/health

關鍵是如何去修改這個地址啊,我們想想看,Spring Boot Admin只是一個展示平臺,本身是不存儲信息的,我們用的是整合了Eureka的方式,所以信息都是從Eureka過來的,查看下Eureka中服務的信息就知道了。

通過eureka部署的地址+/eureka/apps/服務名稱查看,如下圖:

可以看到在instance下面有homePageUrl,statusPageUrl,healthCheckUrl的值是沒加上context-path的,于是我把這三個值改過來:

eureka.instance.home-page-url-path=${server.servlet.context-path}
eureka.instance.health-check-url-path=${server.servlet.context-path}/actuator/health
eureka.instance.status-page-url-path=${server.servlet.context-path}/actuator/info

然后發現確實不報錯了,顯示如下:

問題是還有很多的監控信息不見了,現在只有一個Metadata和Health信息,還是沒有完全改好。

這個時候就兩種方式了,要么通過源碼的方式去解決問題,要么直接細讀官方文檔,我看了下文檔,找到了一個配置:

大概意思是將這個路徑追加到服務URL中,用于訪問端點信息,這個配置是需要增加到服務的metadata中的,如下:

eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator

加了這句之后數據就能全部出來了,問題到此全部解決。

還有一種方式就是通過源碼的方式來解決,給大家提供點思路,當報錯的時候,我們可以抓包,看頁面是從哪個地址獲取的數據,比如:

主要是applications這個地址,可以看到重要的信息是endpoints里面的數據,這些端點信息和對應的url就是最終顯示的數據來源,當加了context-path之后這些地址還是之前的,所以獲取不到數據,那么為什么需要配置management.context-path就可以解決呢?

大家可以一步步跟進去看源碼,我直接告訴大家這塊的代碼在哪里

de.codecentric.boot.admin.server.services.endpoints.QueryIndexEndpointStrategy.detectEndpoints(Instance)

這個方法里面:

這邊就是獲取所有Endpoints的方法,instance.getRegistration().getManagementUrl()就是我們需要改正確的地址,只有這個地址正確了才能獲取到正確的Endpoints信息。

歡迎加入我的知識星球,一起交流技術,免費學習猿天地的課程(http://cxytiandi.com/course) PS:目前星球中正在星主的帶領下組隊學習Sentinel,等你哦!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73586.html

相關文章

  • Spring Boot 參考指南(通過HTTP監控和管理)

    摘要:通過監控和管理如果你正在開發一個應用程序,會自動配置通過公開的所有已啟用的端點,默認約定是使用帶有前綴的端點作為路徑,例如,公開為。 51. 通過HTTP監控和管理 如果你正在開發一個web應用程序,Spring Boot Actuator會自動配置通過HTTP公開的所有已啟用的端點,默認約定是使用帶有/actuator前綴的端點id作為URL路徑,例如,health公開為/actua...

    jayzou 評論0 收藏0
  • spring boot admin系統監控處理

    摘要:系統監控使用修改增加啟動類增加注解支持修改屬性文件修改增加修改屬性文件增加配置啟動和即可查看應用的狀態 1.系統監控使用springboot admin 2.springboot admin server 2.1 修改pom.xml增加dependency de.codecentric spring-boot-admin...

    CloudDeveloper 評論0 收藏0
  • 記錄spring-boot 1.5.9升級至2.0.1那些坑

    摘要:前兩天組里的大佬心血來潮,讓我這周把項目里的版本升級到最新版本,目前項目用到的是版本為的版本為現在按照要求統一升級到。三數據庫連接池同樣也是版本不兼容,需要升級到,親測有效。差不多這些,后續遇到其他問題還會繼續補充。 前兩天組里的大佬心血來潮,讓我這周把項目里的spring-boot、spring-cloud版本升級到最新版本,目前項目用到的是spring-boot版本為1.5.9.R...

    gitmilk 評論0 收藏0
  • 二.spring-boot:基本配置

    摘要:隨機值配置文件配置文件中可以用來生成各種不同類型的隨機值,從而簡化了代碼生成的麻煩,例如生成值值或者字符串。多環境配置是用來針對不同環境提供不同配置的支持全局配置使用。通過中設置值在下新建和文件并分別配置中配置默認值使用拓展 一.基本配置 1.1 springboot入口類@SpringBootApplication @SpringBootApplication 是springboot...

    mo0n1andin 評論0 收藏0
  • Zuul中聚合Swagger

    摘要:下面來看下具體的整合步驟以及采坑記錄。正常情況下上面的整合步驟沒任何問題,今天有朋友在星球提問,說自己的業務服務加了,中聚合的文檔無法顯示,因為路徑錯了,少了配置的。 每個服務都有自己的接口,通過Swagger來管理接口文檔。在服務較多的時候我們希望有一個統一的入口來進行文檔的查看,這個時候可以在zuul中進行文檔的聚合顯示。 下面來看下具體的整合步驟以及采坑記錄。Cloud版本:Fi...

    icyfire 評論0 收藏0

發表評論

0條評論

SHERlocked93

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<