Eureka配置資訊詳解
Eureka包含四部分配置
- instance : 當前Eureka Instance例項配置資訊
- client : Eureka Client客戶端特性配置
- server : Eureka Server註冊中心特性配置
- dashboard : Eureka Server註冊中心儀表盤配置
Eureka Instance 例項資訊配置
Eureka Instance的配置資訊全部儲存在
org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean
配置類中,實際上它是com.netflix.appinfo.EurekaInstanceConfig
的實現類,替代了netflix
的com.netflix.appinfo.CloudInstanceConfig
的預設實現。
Eureka Instance的配置資訊全部以
eureka.instance.xxx
的格式配置。
配置列表:
配置屬性 | 解釋 | 預設值 |
---|---|---|
appname | 應用名,首先獲取spring.application.name 的值,如果取值為空,則取預設unknown |
unknown |
appGroupName | 應用組名 | null |
instanceEnabledOnit | 例項註冊到Eureka上是,是否立刻開啟通訊。有時候應用在準備好服務之前需要一些預處理 | false |
nonSecurePort | 非安全的埠 | 80 |
securePort | 安全的埠 | 443 |
nonSecurePortEnabled | 是否開啟非安全埠通訊 | true |
securePortEnabled | 是否開啟安全埠通訊 | false |
leaseRenewalIntervalInSeconds | 例項續約間隔時間(s) | 30 |
leaseExpirationDurationInSeconds | 例項超時時間,表示最大leaseExpirationDurationInSeconds秒後沒有續約,Server就認為他不可用了,隨之就會將其剔除(s) | 90 |
virtualHostName | 虛擬主機名,首先獲取spring.application.name |
unknown |
instanceId | 註冊到eureka上的唯一例項ID,不能與相同appname的其他例項重複 | |
secureVirtualHostName | 安全虛擬主機名,首先獲取spring.application.name 的值,如果取值為空,則取預設unknown |
unknown |
metadataMap | 例項元資料,可以供其他例項使用。比如spring-boot-admin在監控時,獲取例項的上下文和埠 | HashMap |
dataCenterInfo | 例項部署的資料中心。如AWS、MyOwn | new MyDataCenterInfo(DataCenterInfo.Name.MyOwn) |
ipAddress | 例項的IP地址 | null |
statusPageUrlPath | 例項狀態頁相對url | "/actuator/info" |
statusPageUrl | 例項狀態頁絕對url | url |
homePageUrlPath | 例項主頁相對URL | / |
healthCheckUrlUrlPath | 例項健康檢查相對URL | "/actuator/health" |
healthCheckUrl | 例項健康檢查絕對URL | null |
secureHealthCheckUrl | 例項安全的健康檢查絕對URL | null |
namespace | 配置屬性的名稱空間(Spring Cloud中被忽略) | "eureka" |
hostname | 主機名,不配置的時候講根據作業系統的主機名來獲取 | null |
preferIpAddress | 是否優先使用IP地址作為主機名的標識 | false |
Eureka Client客戶端特性配置
Eureka Client客戶端特性配置是對作為Eureka客戶端的特性配置,包括Eureka註冊中心,本身也是一個Eureka Client。Eureka Client特性配置全部在
org.springframework.cloud.netflix.eureka.EurekaClientConfigBean
中,實際上它是com.netflix.discovery.EurekaClientConfig
的實現類,替代了netxflix的預設實現
Eureka Client客戶端特性配置全部以
eureka.client.xxx
的格式配置。
配置列表:
配置屬性 | 解釋 | 預設值 |
---|---|---|
enabled | 是否啟用Eureka client | true |
registryFetchIntervalSeconds | 定時從Eureka Server拉取服務註冊資訊的間隔時間(s) | 30 |
instanceInfoReplicationIntervalSeconds | 定時將例項資訊(如果變化了)複製到Eureka Server的間隔時間。(InstanceInfoReplicator執行緒) | 30 |
initialInstanceInfoReplicationIntervalSeconds | 首次將例項資訊複製到Eureka Server的延遲時間。(InstanceInfoReplicator執行緒) | 40 |
eurekaServiceUrlPollIntervalSeconds | 拉取Eureka Server地址的間隔時間(Eureka Server有可能增減) | 300 |
proxyPort | Eureka Server的代理埠 | null |
proxyHost | Eureka Server的代理主機名 | null |
proxyUserName | Eureka Server的代理使用者名稱 | null |
proxyPassword | Eureka Server的代理密碼 | null |
eurekaServerReadTimeoutSeconds | 從Eureka Server讀取資訊的超時時間(s) | 8 |
eurekaServerConnectTimeoutSeconds | 連線Eureka Server的超時時間 | 5 |
backupRegistryImpl | Eureka Client第一次啟動時獲取服務註冊資訊的呼叫的回溯實現。Eureka Client啟動時首次會檢查有沒有BackupRegistry的實現類,如果有實現類,則優先從這個實現類裡獲取服務註冊資訊 | null |
eurekaServerTotalConnections | Eureka client連線Eureka Server的連結總數 | 200 |
eurekaServerTotalConnectionsPerHost | Eureka client連線單臺Eureka Server的連結總數 | 50 |
eurekaServerURLContext | 當Eureka server的列表在DNS中時,Eureka Server的上下文路徑。如http://xxxx/eureka | null |
eurekaServerPort | 當Eureka server的列表在DNS中時,Eureka Server的埠 | null |
eurekaServerDNSName | 當Eureka server的列表在DNS中時,且要通過DNSName獲取Eureka Server列表時,DNS名字 | null |
region | 例項所屬區域 | us-east-1 |
eurekaConnectionIdleTimeoutSeconds | Eureka Client和Eureka Server之間的Http連線的空閒超時時間 | 30 |
heartbeatExecutorThreadPoolSize | 心跳(續約)執行器執行緒池大小 | 2 |
heartbeatExecutorExponentialBackOffBound | 心跳執行器在續約過程中超時後的再次執行續約的最大延遲倍數。預設最大延遲時間=10 * eureka.instance.leaseRenewalIntervalInSeconds |
10 |
cacheRefreshExecutorThreadPoolSize | cacheRefreshExecutord的執行緒池大小(獲取註冊資訊) | 2 |
cacheRefreshExecutorExponentialBackOffBound | cacheRefreshExecutord的再次執行的最大延遲倍數。預設最大延遲時間=10 *eureka.client.registryFetchIntervalSeconds |
10 |
serviceUrl | Eureka Server的分割槽地址。預設添加了一個defualtZone。也就是最常用的配置eureka.client.service-url.defaultZone=xxx |
new HashMap();serviceUrl.put(DEFAULT_ZONE, DEFAULT_URL) |
registerWithEureka | 是否註冊到Eureka Server | true |
preferSameZoneEureka | 是否使用相同Zone下的Eureka server | true |
logDeltaDiff | 是否記錄Eureka Server和Eureka Client之間註冊資訊的差異 | false |
disableDelta | 是否開啟增量同步註冊資訊 | false |
fetchRemoteRegionsRegistry | 獲取註冊服務的遠端地區,以逗號隔開 | null |
availabilityZones | 可用分割槽列表。用逗號隔開 | HashMap |
filterOnlyUpInstances | 是否只拉取UP狀態的例項 | true |
fetchRegistry | 是否拉取註冊資訊 | true |
shouldUnregisterOnShutdown | 是否在停止服務的時候向Eureka Server發起Cancel指令 | true |
shouldEnforceRegistrationAtInit | 是否在初始化過程中註冊服務 | false |
Eureka Server註冊中心端配置
Eureka Server註冊中心端的配置是對註冊中心的特性配置。Eureka Server的配置全部在
org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean
裡,實際上它是com.netflix.eureka.EurekaServerConfig
的實現類,替代了netflix的預設實現
Eureka Server的配置全部以
eureka.server.xxx
的格式進行配置
配置列表:
配置屬性 | 解釋 | 預設值 |
---|---|---|
enableSelfPreservation | 是否開啟自我保護 | true |
renewalPercentThreshold | 自我保護續約百分比閥值因子。如果實際續約數小於續約數閥值,則開啟自我保護 | 0.85 |
renewalThresholdUpdateIntervalMs | 續約數閥值更新頻率 | 15 * 60 * 1000 |
peerEurekaNodesUpdateIntervalMs | Eureka Server節點更新頻率 | 10 * 60 * 1000 |
enableReplicatedRequestCompression | 是否啟用複製請求壓縮 | false |
waitTimeInMsWhenSyncEmpty | 當從其他節點同步例項資訊為空時等待的時間 | 5 * 60 * 1000 |
peerNodeConnectTimeoutMs | 節點間連線的超時時間 | 200 |
peerNodeReadTimeoutMs | 節點間讀取資訊的超時時間 | 200 |
peerNodeTotalConnectionsPerHost | 單個節點間連線總數 | 500 |
peerNodeConnectionIdleTimeoutSeconds | 節點間連線空閒超時時間 | 30 |
retentionTimeInMSInDeltaQueue | 增量佇列的快取時間 | 3 * MINUTES |
deltaRetentionTimerIntervalInMs | 清理增量佇列中過期的頻率 | 30 * 1000 |
evictionIntervalTimerInMs | 剔除任務頻率 | 60*1000 |
responseCacheAutoExpirationInSeconds | 註冊列表快取超時時間(當註冊列表沒有變化時) | 180 |
responseCacheUpdateIntervalMs | 註冊列表快取更新頻率 | 30 * 1000 |
useReadOnlyResponseCache | 是否開啟註冊列表的二級快取 | true |
disableDelta | 是否為client提供增量資訊 | false |
maxThreadsForStatusReplication | 狀態同步的最大執行緒數 | 1 |
maxElementsInStatusReplicationPool | 狀態同步佇列的最大容量 | 10000 |
syncWhenTimestampDiffers | 當時間差異時是否同步 | true |
registrySyncRetries | 註冊資訊同步重試次數 | 0 |
registrySyncRetryWaitMs | 註冊資訊同步重試期間的時間間隔 | 30 * 1000 |
maxElementsInPeerReplicationPool | 節點間同步事件的最大容量 | 10000 |
minThreadsForPeerReplication | 節點間同步的最小執行緒數 | 5 |
maxThreadsForPeerReplication | 節點間同步的最大執行緒數 | 20 |
maxTimeForReplication | 節點間同步的最大時間,單位為毫秒 | 30000 |
disableDeltaForRemoteRegions | 是否啟用遠端區域增量 | false |
remoteRegionConnectTimeoutMs | 遠端區域連線超時時間 | 1000 |
remoteRegionReadTimeoutMs | 遠端區域讀取超時時間 | 1000 |
remoteRegionTotalConnections | 遠端區域最大連線數 | 1000 |
remoteRegionTotalConnectionsPerHost | 遠端區域單機連線數 | 500 |
remoteRegionConnectionIdleTimeoutSeconds | 遠端區域連線空閒超時時間 | 30 |
remoteRegionRegistryFetchInterval | 遠端區域註冊資訊拉取頻率 | 30 |
remoteRegionFetchThreadPoolSize | 遠端區域註冊資訊執行緒數 | 20 |
Eureka Server註冊中心儀表盤配置
註冊中心儀表盤的配置主要是控制註冊中心的視覺化展示。以
eureka.dashboard.xxx
的格式配置
配置列表:
配置屬性 | 解釋 | 預設值 |
---|---|---|
path | 儀表盤訪問路徑 | / |
enabled | 是否啟用儀表盤 | `` |