1. 程式人生 > >Spring-boot-admin配置屬性詳解

Spring-boot-admin配置屬性詳解

使用到了springbootAdmin這個工具,但是有關它們的配置不太理解。下面是我對照著官網的說明以及自己的理解總結的,如果有不正確的地方歡迎大家指正。(我這裡只是在springboot中使用了SBA,還沒有涉及到其它更加高階的spring cloud等。這裡的屬性也只是最簡單的一些配置屬性)

springbootAdmin—client端配置屬性詳解:

spring.boot.admin.client.enabled:是否啟用springbootAdmin客戶端,預設為true;

spring.boot.admin.client.url:要註冊的server端的url地址。如果要同時在多個server埠註冊,則用逗號分隔各個server端的url地址;

spring.boot.admin.client.api-path:預設值是instances。server端獲取client資訊的路徑,預設情況下server通過訪問/instances請求來獲取到client端的資訊。(client端向server端註冊,註冊成功後server端會給該client建立一個唯一的clientID值。當server端需要獲取client的資訊,比如health資訊時,server端會發送http://111.11.11.1:8080/instances/clientID/actuator/health即可,這裡的http://111.11.11.1:8080是client所在伺服器的IP地址,instances就是該屬性的值)

spring.boot.admin.client.username:如果server端需要進行認證時,該屬性用於配置使用者名稱。


spring.boot.admin.client.password:如果server端需要進行認證時,該屬性用於配置密碼。

spring.boot.admin.client.period:註冊時間間隔,單位是毫秒;預設值是10秒鐘註冊一次。(client通過持續不斷地向server端進行註冊來保持client端與server端的連線)

spring.boot.admin.client.connect-timeout:註冊連線超時時間,單位是毫秒,預設值是5秒。當client向server進行註冊時,如果5秒鐘沒有註冊完成則認為本次註冊失敗;

spring.boot.admin.client.read-timeout:註冊讀取超時,單位是毫秒,預設值是5秒;

spring.boot.admin.client.auto-registration:是否開啟自動註冊,預設值是true。

spring.boot.admin.client.auto-deregistration:是否開啟自動登出,預設值是null。如果服務端執行在雲平臺,預設值是true;

spring.boot.admin.client.register-once:預設值為true。如果值為true的話,client只會在一個server端進行註冊(按照spring.boot.admin.client.url中設定的server的順序)。如果該server端宕機,會自動在下一個server端進行註冊。如果該屬性值為false,則會在所有的server端進行註冊;

spring.boot.admin.client.instance.management-url:註冊的management-url,如果可用的url不同的話可以重寫該值。如果不配置該屬性的話,預設該屬性值與management-base-url 和 management.context-path兩個屬性值有關。比如工程中該值為:

managementUrl=http://192.168.200.165:8080/actuator,其中http://192.168.200.165:8080為management-base-url,/actuator是management.context-path(該屬性值是spring actuator的屬性值);

spring.boot.admin.client.instance.management-base-url:用於計算management-url 的基本URL。該路徑值在執行時進行獲取並賦值給 base url。如果不配置該屬性值的話,預設該屬性值與management.port, service-url 以及server.servlet-path有關。比如工程中該值為埠是配置的獲取actuator資訊的埠。192.168.200.165是設定的service-url值,如果沒有設定service-url的話,則為配置的server.servlet-path值(專案的啟動路徑)。

spring.boot.admin.client.instance.health-url:註冊的health-url地址,如果可用的url不同可以重寫該值。如果不配置該屬性的話,預設該屬性值與management-url 以及endpoints.health.id有關。比如工程中該值為:healthUrl=http://192.168.200.165:8080/actuator/health,其中http://192.168.200.165:8080/actuator是management-url,health是endpoints.health.id。

spring.boot.admin.client.instance.service-base-url:用於計算service-url 的基本URL。該路徑值在執行時進行獲取並賦值給 base url。如果不配置該屬性值的話,預設該屬性值與hostname, server.port有關。比如工程中該值為埠是配置的server.port。p-v-9是client所在伺服器的hostname。

spring.boot.admin.client.instance.service-url:註冊的service-url值。如果不配置該屬性值的話,基於 service-base-url 和 server.context-path進行賦值。比如工程中為是base-url,/是工程配置的 server.context-path值。(這裡要注意的是,當server端與client端不在同一臺伺服器上的時候,要配置該屬性的值。如果不配置的話,server端就會根據預設的命名規則來配置該值,比如,如果server使用這個值來獲取client的各種效能資訊的話是獲取不到的);

spring.boot.admin.client.instance.name:客戶端工程的名字。預設值是配置的spring.application.name的值,如果沒有配置該屬性的話,預設值是spring-boot-application;

spring.boot.admin.client.instance.prefer-ip:是否使用註冊的ip地址來取代上述各個url中hostname的值,預設值是false(也就是說預設情況下上述各個url中會使用hostname的值,比如我的電腦的hostname為p-v-9)。如果設定了server.address或者management.address的話ip地址就是該值,如果沒有設定這兩個屬性的話ip地址值是InetAddress.getLocalHost()的值。

spring.boot.admin.client.instance.metadata.*:與該應用有關的元資料,以鍵值對的形式賦值。

springbootAdmin—server端配置屬性詳解:

spring.boot.admin.context-path:server端的訪問路徑,預設是/。預設情況下server的訪問地址是,這裡**.**.**.**:**是server所在伺服器的ip地址。我們的工程設定該值是springbootAdmin,那麼工程的server端訪問地址是http://111.11.11.1:8000/springbootAdmin;

spring.boot.admin.monitor.period:更新client端狀態的時間間隔,單位是毫秒,預設值是10秒鐘;

spring.boot.admin.monitor.status-lifetime:client端狀態的生命週期,該生命週期內不會更新client狀態。單位是毫秒,預設值是10秒鐘;

spring.boot.admin.monitor.connect-timeout:查詢client狀態資訊時的連線超時時間,單位是毫秒,預設是2秒(如果2秒內沒有獲取到client的狀態資訊,則認為連線已經斷開)。

spring.boot.admin.monitor.read-timeout:查詢client狀態資訊時的讀取超時時間,單位是毫秒,預設是2秒(如果2秒內沒有獲取到client的狀態資訊,則認為讀取失敗)。

spring.boot.admin.metadata-keys-to-sanitize:要被過濾掉的元資料(當與正則表示式相匹配時,這些資料會在輸出的json資料中過濾掉),預設值是".password$", ".*secret$", ".*key$", ".$token$", ".credentials.", ".*vcap_services$";

spring.boot.admin.probed-endpoints:要獲取的client的端點資訊,預設是"health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents";

spring.boot.admin.instance-proxy.ignored-headers:向client發起請求時不會被轉發的headers資訊,預設值是"Cookie", "Set-Cookie", "Authorization";

spring.boot.admin.ui.brand:在導航欄中顯示的brand值,預設是"<img src="assets/img/icon-spring-boot-admin.svg"><span>Spring Boot Admin</span>";

spring.boot.admin.ui.title:顯示的頁面標題,預設是"Spring Boot Admin"