附錄 A:常用應用程式屬性

各種屬性可以在您的 application.properties 檔案、application.yml 檔案或作為命令列開關來指定。本附錄提供常見的 Spring Cloud Commons 屬性列表,以及取用這些屬性的底層類別的參考。

屬性貢獻可能來自於類別路徑上的其他 jar 檔案,因此您不應將此列表視為詳盡無遺的列表。此外,您可以定義自己的屬性。
名稱 預設值 描述

spring.cloud.compatibility-verifier.compatible-boot-versions

Spring Boot 相依性的預設接受版本。如果您不想指定具體的值,可以為修補程式版本設定 x。範例:3.4.x

spring.cloud.compatibility-verifier.enabled

false

啟用 Spring Cloud 相容性驗證的建立。

spring.cloud.config.allow-override

true

旗標,指示可以使用 {@link #isOverrideSystemProperties() systemPropertiesOverride}。設定為 false 可防止使用者意外更改預設值。預設值為 true。

spring.cloud.config.initialize-on-context-refresh

false

旗標,用於在內容重新整理事件時初始化引導配置。預設值為 false。

spring.cloud.config.override-none

false

旗標,指示當 {@link #setAllowOverride(boolean) allowOverride} 為 true 時,外部屬性應具有最低優先順序,且不應覆寫任何現有的屬性來源(包括本機組態檔)。預設值為 false。這僅在使用 config first bootstrap 時才會生效。

spring.cloud.config.override-system-properties

true

旗標,指示外部屬性應覆寫系統屬性。預設值為 true。

spring.cloud.decrypt-environment-post-processor.enabled

true

啟用 DecryptEnvironmentPostProcessor。

spring.cloud.discovery.client.composite-indicator.enabled

true

啟用 Discovery Client 複合健康指示器。

spring.cloud.discovery.client.health-indicator.enabled

true

spring.cloud.discovery.client.health-indicator.include-description

false

spring.cloud.discovery.client.health-indicator.use-services-query

true

指示器是否應使用 {@link DiscoveryClient#getServices} 來檢查其健康狀態。當設定為 {@code false} 時,指示器會改用較輕量的 {@link DiscoveryClient#probe()}。這在大型部署中很有幫助,在大型部署中,傳回的服務數量會使操作變得不必要地繁重。

spring.cloud.discovery.client.simple.instances

spring.cloud.discovery.client.simple.local.host

spring.cloud.discovery.client.simple.local.instance-id

spring.cloud.discovery.client.simple.local.metadata

spring.cloud.discovery.client.simple.local.port

0

spring.cloud.discovery.client.simple.local.secure

false

spring.cloud.discovery.client.simple.local.service-id

spring.cloud.discovery.client.simple.local.uri

spring.cloud.discovery.client.simple.order

spring.cloud.discovery.enabled

true

啟用 Discovery Client 健康指示器。

spring.cloud.features.enabled

true

啟用功能端點。

spring.cloud.httpclientfactories.apache.enabled

true

啟用 Apache Http Client 工廠 Bean 的建立。

spring.cloud.httpclientfactories.ok.enabled

true

啟用 OK Http Client 工廠 Bean 的建立。

spring.cloud.hypermedia.refresh.fixed-delay

5000

spring.cloud.hypermedia.refresh.initial-delay

10000

spring.cloud.inetutils.default-hostname

localhost

預設主機名稱。在發生錯誤時使用。

spring.cloud.inetutils.default-ip-address

127.0.0.1

預設 IP 位址。在發生錯誤時使用。

spring.cloud.inetutils.ignored-interfaces

將被忽略的網路介面的 Java 正則表達式列表。

spring.cloud.inetutils.preferred-networks

將被優先使用的網路位址的 Java 正則表達式列表。

spring.cloud.inetutils.timeout-seconds

1

計算主機名稱的逾時時間,以秒為單位。

spring.cloud.inetutils.use-only-site-local-interfaces

false

是否僅使用具有站點本地位址的介面。有關更多詳細資訊,請參閱 {@link InetAddress#isSiteLocalAddress()}。

spring.cloud.loadbalancer.cache.caffeine.spec

用於建立快取的規範。有關規範格式的更多詳細資訊,請參閱 CaffeineSpec。

spring.cloud.loadbalancer.cache.capacity

256

以 int 表示的初始快取容量。

spring.cloud.loadbalancer.cache.enabled

true

啟用 Spring Cloud LoadBalancer 快取機制。

spring.cloud.loadbalancer.cache.ttl

35 秒

生存時間 (TTL) - 從記錄寫入時算起的時間,在此時間之後快取項目將過期。

spring.cloud.loadbalancer.call-get-with-request-on-delegates

false

如果此旗標設定為 {@code true},則會實作 {@code ServiceInstanceListSupplier#get(Request request)} 方法,以在可從 {@code DelegatingServiceInstanceListSupplier} 指派的類別中呼叫 {@code delegate.get(request)},這些類別尚未實作該方法,但不包括 {@code CachingServiceInstanceListSupplier} 和 {@code HealthCheckServiceInstanceListSupplier},它們應直接放置在執行網路實例檢索的供應商之後的實例供應商階層中,在執行任何基於請求的篩選之前。注意:在 4.1 中,此行為將成為預設行為

spring.cloud.loadbalancer.clients

spring.cloud.loadbalancer.configurations

預設

啟用預定義的 LoadBalancer 配置。

spring.cloud.loadbalancer.eager-load.clients

客户端的名稱。

spring.cloud.loadbalancer.enabled

true

啟用 Spring Cloud LoadBalancer。

spring.cloud.loadbalancer.health-check.initial-delay

0

HealthCheck 調度器的初始延遲值。

spring.cloud.loadbalancer.health-check.interval

25 秒

重新執行 HealthCheck 調度器的間隔。

spring.cloud.loadbalancer.health-check.interval

25 秒

重新執行 HealthCheck 調度器的間隔。

spring.cloud.loadbalancer.health-check.path

應發出健康檢查請求的路徑。可以針對每個 serviceId 進行設定。也可以設定 預設 值。如果未設定任何值,則將使用 /actuator/health

spring.cloud.loadbalancer.health-check.port

應發出健康檢查請求的路徑。如果未設定任何值,則為請求的服務在服務實例上可用的端口。

spring.cloud.loadbalancer.health-check.refetch-instances

false

指示是否應由 HealthCheckServiceInstanceListSupplier 重新提取實例。如果可以更新實例且底層委派未提供持續的 flux,則可以使用此選項。

spring.cloud.loadbalancer.health-check.refetch-instances-interval

25 秒

重新提取可用服務實例的間隔。

spring.cloud.loadbalancer.health-check.repeat-health-check

true

指示健康檢查是否應持續重複。如果定期重新提取實例,則將其設定為 false 可能很有用,因為每次重新提取也會觸發健康檢查。

spring.cloud.loadbalancer.health-check.update-results-list

true

指示 {@code healthCheckFlux} 是否應在每個已檢索的存活 {@link ServiceInstance} 上發出。如果設定為 {@code false},則整個存活實例序列會先收集到列表中,然後才發出。

spring.cloud.loadbalancer.hint

允許設定傳遞到 LoadBalancer 請求的 hint 值,並且隨後可以在 {@link ReactiveLoadBalancer} 實作中使用。

spring.cloud.loadbalancer.hint-header-name

X-SC-LB-Hint

允許設定用於傳遞提示的標頭名稱,以進行基於提示的服務實例篩選。

spring.cloud.loadbalancer.retry.avoid-previous-instance

true

如果 Spring-Retry 在類別路徑中,則啟用使用 RetryAwareServiceInstanceListSupplier 包裝 ServiceInstanceListSupplier Bean。

spring.cloud.loadbalancer.retry.backoff.enabled

false

指示是否應套用 Reactor Retry 退避。

spring.cloud.loadbalancer.retry.backoff.jitter

0.5

用於設定 RetryBackoffSpec.jitter

spring.cloud.loadbalancer.retry.backoff.max-backoff

Long.MAX 毫秒

用於設定 RetryBackoffSpec.maxBackoff

spring.cloud.loadbalancer.retry.backoff.min-backoff

5 毫秒

用於設定 RetryBackoffSpec#minBackoff

spring.cloud.loadbalancer.retry.enabled

true

啟用 LoadBalancer 重試。

spring.cloud.loadbalancer.retry.max-retries-on-next-service-instance

1

將在下一個 ServiceInstance 上執行的重試次數。在每次重試呼叫之前,都會選擇一個 ServiceInstance

spring.cloud.loadbalancer.retry.max-retries-on-same-service-instance

0

將在同一個 ServiceInstance 上執行的重試次數。

spring.cloud.loadbalancer.retry.retry-on-all-exceptions

false

指示應嘗試對所有異常進行重試,而不僅僅是 retryableExceptions 中指定的異常。

spring.cloud.loadbalancer.retry.retry-on-all-operations

false

指示應嘗試對 HttpMethod.GET 以外的操作進行重試。

spring.cloud.loadbalancer.retry.retryable-exceptions

{}

應觸發重試的 Throwable 類別的 Set

spring.cloud.loadbalancer.retry.retryable-status-codes

{}

應觸發重試的狀態碼的 Set

spring.cloud.loadbalancer.service-discovery.timeout

呼叫服務發現的逾時持續時間的字串表示形式。

spring.cloud.loadbalancer.stats.micrometer.enabled

false

啟用 Spring Cloud LoadBalancer Micrometer 統計資訊。

spring.cloud.loadbalancer.sticky-session.add-service-instance-cookie

false

指示 LoadBalancer 是否應添加包含新選取實例的 Cookie。

spring.cloud.loadbalancer.sticky-session.instance-id-cookie-name

sc-lb-instance-id

保留偏好實例 ID 的 Cookie 名稱。

spring.cloud.loadbalancer.x-forwarded.enabled

false

啟用 X-Forwarded 標頭。

spring.cloud.loadbalancer.zone

Spring Cloud LoadBalancer 區域。

spring.cloud.refresh.additional-property-sources-to-retain

在重新整理期間要保留的其他屬性來源。通常僅保留系統屬性來源。此屬性允許保留屬性來源,例如由 EnvironmentPostProcessors 建立的屬性來源。

spring.cloud.refresh.enabled

true

啟用重新整理範圍和相關功能的自動配置。

spring.cloud.refresh.extra-refreshable

true

要後處理到重新整理範圍的 Bean 的其他類別名稱。

spring.cloud.refresh.never-refreshable

true

永不重新整理或重新綁定的 Bean 的逗號分隔類別名稱列表。

spring.cloud.service-registry.auto-registration.enabled

true

是否啟用服務自動註冊。預設值為 true。

spring.cloud.service-registry.auto-registration.fail-fast

false

如果沒有 AutoServiceRegistration,啟動是否失敗。預設值為 false。

spring.cloud.service-registry.auto-registration.register-management

true

是否將管理註冊為服務。預設值為 true。

spring.cloud.util.enabled

true

啟用 Spring Cloud 实用工具 Bean 的建立。

1. 可觀測性元數據

1.1. 可觀測性 - 指標

您可以在下面找到此專案宣告的所有指標列表。

1.1.1. 斷路器函數觀察

當我們將傳遞給斷路器的 Function 包裝為回退時建立的觀察。

指標名稱 spring.cloud.circuitbreaker (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。類型 timer

指標名稱 spring.cloud.circuitbreaker.active (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。類型 long task timer

在啟動觀察後新增的 KeyValues 可能會從 *.active 指標中遺失。
Micrometer 內部使用 nanoseconds 作為基本單位。但是,每個後端都會決定實際的基本單位。(例如,Prometheus 使用秒)。

封閉類別的完整限定名稱 org.springframework.cloud.client.circuitbreaker.observation.CircuitBreakerObservationDocumentation

所有標籤都必須以 spring.cloud.circuitbreaker 前綴開頭!
表 1. 低基數鍵

名稱

描述

spring.cloud.circuitbreaker.type (必要)

定義包裝的 lambda 類型。

1.1.2. 斷路器供應商觀察

當我們將傳遞給斷路器的 Supplier 包裝時建立的觀察。

指標名稱 spring.cloud.circuitbreaker (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。類型 timer

指標名稱 spring.cloud.circuitbreaker.active (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。類型 long task timer

在啟動觀察後新增的 KeyValues 可能會從 *.active 指標中遺失。
Micrometer 內部使用 nanoseconds 作為基本單位。但是,每個後端都會決定實際的基本單位。(例如,Prometheus 使用秒)。

封閉類別的完整限定名稱 org.springframework.cloud.client.circuitbreaker.observation.CircuitBreakerObservationDocumentation

所有標籤都必須以 spring.cloud.circuitbreaker 前綴開頭!
表 2. 低基數鍵

名稱

描述

spring.cloud.circuitbreaker.type (必要)

定義包裝的 lambda 類型。

1.2. 可觀測性 - Span

您可以在下面找到此專案宣告的所有 Span 列表。

1.2.1. 斷路器函數觀察 Span

當我們將傳遞給斷路器的 Function 包裝為回退時建立的觀察。

Span 名稱 spring.cloud.circuitbreaker (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。

封閉類別的完整限定名稱 org.springframework.cloud.client.circuitbreaker.observation.CircuitBreakerObservationDocumentation

所有標籤都必須以 spring.cloud.circuitbreaker 前綴開頭!
表 3. 標籤鍵

名稱

描述

spring.cloud.circuitbreaker.type (必要)

定義包裝的 lambda 類型。

1.2.2. 斷路器供應商觀察 Span

當我們將傳遞給斷路器的 Supplier 包裝時建立的觀察。

Span 名稱 spring.cloud.circuitbreaker (由慣例類別 org.springframework.cloud.client.circuitbreaker.observation.DefaultCircuitBreakerObservationConvention 定義)。

封閉類別的完整限定名稱 org.springframework.cloud.client.circuitbreaker.observation.CircuitBreakerObservationDocumentation

所有標籤都必須以 spring.cloud.circuitbreaker 前綴開頭!
表 4. 標籤鍵

名稱

描述

spring.cloud.circuitbreaker.type (必要)

定義包裝的 lambda 類型。