深刻理解Eureka - Eureka配置列表

Eureka包含四個部分的配置git

  1. instance:當前Eureka Instance實例信息配置
  2. client:Eureka Client客戶端特性配置
  3. server:Eureka Server註冊中心特性配置
  4. dashboard:Eureka Server註冊中心儀表盤配置

Eureka Instance實例信息配置

Eureka Instance的配置信息所有保存在org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean配置類裏,實際上它是com.netflix.appinfo.EurekaInstanceConfig的實現類,替代了netflix的com.netflix.appinfo.CloudInstanceConfig的默認實現。github

Eureka Instance的配置信息所有以eureka.instance.xxx的格式配置。spring

配置列表緩存

appname = unknown安全

應用名,首先獲取spring.application.name的值,若是取值爲空,則取默認unknown。app

appGroupName = nullspring-boot

應用組名fetch

instanceEnabledOnit = falseurl

實例註冊到Eureka上是,是否馬上開啓通信。有時候應用在準備好服務以前須要一些預處理。spa

nonSecurePort = 80

非安全的端口

securePort = 443

安全端口

nonSecurePortEnabled = true

是否開啓非安全端口通信

securePortEnabled = false

是否開啓安全端口通信

leaseRenewalIntervalInSeconds = 30

實例續約間隔時間

leaseExpirationDurationInSeconds = 90

實例超時時間,表示最大leaseExpirationDurationInSeconds秒後沒有續約,Server就認爲他不可用了,隨之就會將其剔除。

virtualHostName = unknown

虛擬主機名,首先獲取spring.application.name的值,若是取值爲空,則取默認unknown。

instanceId

註冊到eureka上的惟一實例ID,不能與相同appname的其餘實例重複。

secureVirtualHostName = unknown

安全虛擬主機名,首先獲取spring.application.name的值,若是取值爲空,則取默認unknown。

metadataMap = new HashMap();

實例元數據,能夠供其餘實例使用。好比spring-boot-admin在監控時,獲取實例的上下文和端口。

dataCenterInfo = new MyDataCenterInfo(DataCenterInfo.Name.MyOwn);

實例部署的數據中心。如AWS、MyOwn。

ipAddress=null

實例的IP地址

statusPageUrlPath = "/actuator/info"

實例狀態頁相對url

statusPageUrl = null

實例狀態頁絕對URL

homePageUrlPath = "/"

實例主頁相對URL

homePageUrl = null

實例主頁絕對URL

healthCheckUrlUrlPath = "/actuator/health"

實例健康檢查相對URL

healthCheckUrl = null

實例健康檢查絕對URL

secureHealthCheckUrl = null

實例安全的健康檢查絕對URL

namespace = "eureka"

配置屬性的命名空間(Spring Cloud中被忽略)

hostname = null

主機名,不配置的時候講根據操做系統的主機名來獲取

preferIpAddress = false

是否優先使用IP地址做爲主機名的標識

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=true

是否啓用Eureka client。

registryFetchIntervalSeconds=30

定時從Eureka Server拉取服務註冊信息的間隔時間

instanceInfoReplicationIntervalSeconds=30

定時將實例信息(若是變化了)複製到Eureka Server的間隔時間。(InstanceInfoReplicator線程)

initialInstanceInfoReplicationIntervalSeconds=40

首次將實例信息複製到Eureka Server的延遲時間。(InstanceInfoReplicator線程)

eurekaServiceUrlPollIntervalSeconds=300

拉取Eureka Server地址的間隔時間(Eureka Server有可能增減)

proxyPort=null

Eureka Server的代理端口

proxyHost=null

Eureka Server的代理主機名

proxyUserName=null

Eureka Server的代理用戶名

proxyPassword=null

Eureka Server的代理密碼

eurekaServerReadTimeoutSeconds=8

從Eureka Server讀取信息的超時時間

eurekaServerConnectTimeoutSeconds=5

鏈接Eureka Server的超時時間

backupRegistryImpl=null

Eureka Client第一次啓動時獲取服務註冊信息的調用的回溯實現。Eureka Client啓動時首次會檢查有沒有BackupRegistry的實現類,若是有實現類,則優先從這個實現類裏獲取服務註冊信息。

eurekaServerTotalConnections=200

Eureka client鏈接Eureka Server的連接總數

eurekaServerTotalConnectionsPerHost=50

Eureka client鏈接單臺Eureka Server的連接總數

eurekaServerURLContext=null

當Eureka server的列表在DNS中時,Eureka Server的上下文路徑。如http://xxxx/eureka。

eurekaServerPort=null

當Eureka server的列表在DNS中時,Eureka Server的端口。

eurekaServerDNSName=null

當Eureka server的列表在DNS中時,且要經過DNSName獲取Eureka Server列表時,DNS名字。

region="us-east-1"

實例所屬區域。

eurekaConnectionIdleTimeoutSeconds = 30

Eureka Client和Eureka Server之間的Http鏈接的空閒超時時間。

heartbeatExecutorThreadPoolSize=2

心跳(續約)執行器線程池大小。

heartbeatExecutorExponentialBackOffBound=10

心跳執行器在續約過程當中超時後的再次執行續約的最大延遲倍數。默認最大延遲時間=10 * eureka.instance.leaseRenewalIntervalInSeconds

cacheRefreshExecutorThreadPoolSize=2

cacheRefreshExecutord的線程池大小(獲取註冊信息)

cacheRefreshExecutorExponentialBackOffBound=10

cacheRefreshExecutord的再次執行的最大延遲倍數。默認最大延遲時間=10 *eureka.client.registryFetchIntervalSeconds

serviceUrl= new HashMap();serviceUrl.put(DEFAULT_ZONE, DEFAULT_URL);

Eureka Server的分區地址。默認添加了一個defualtZone。也就是最經常使用的配置eureka.client.service-url.defaultZone=xxx

registerWithEureka=true

是否註冊到Eureka Server。

preferSameZoneEureka=true

是否使用相同Zone下的Eureka server。

logDeltaDiff=false

是否記錄Eureka Server和Eureka Client之間註冊信息的差別

disableDelta=false

是否開啓增量同步註冊信息。

fetchRemoteRegionsRegistry=null

獲取註冊服務的遠程地區,以逗號隔開。

availabilityZones=new HashMap()

可用分區列表。用逗號隔開。

filterOnlyUpInstances = true

是否只拉取UP狀態的實例。

fetchRegistry=true

是否拉取註冊信息。

shouldUnregisterOnShutdown = true

是否在中止服務的時候向Eureka Server發起Cancel指令。

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 = 10 * 60 * 1000

Eureka Server節點更新頻率。

enableReplicatedRequestCompression = false

是否啓用複製請求壓縮。

waitTimeInMsWhenSyncEmpty=5 * 60 * 1000

當從其餘節點同步實例信息爲空時等待的時間。

peerNodeConnectTimeoutMs=200

節點間鏈接的超時時間。

peerNodeReadTimeoutMs=200

節點間讀取信息的超時時間。

peerNodeTotalConnections=1000

節點間鏈接總數。

peerNodeTotalConnectionsPerHost = 500;

單個節點間鏈接總數。

peerNodeConnectionIdleTimeoutSeconds = 30;

節點間鏈接空閒超時時間。

retentionTimeInMSInDeltaQueue = 3 * MINUTES;

增量隊列的緩存時間。

deltaRetentionTimerIntervalInMs = 30 * 1000;

清理增量隊列中過時的頻率。

evictionIntervalTimerInMs = 60 * 1000;

剔除任務頻率。

responseCacheAutoExpirationInSeconds = 180;

註冊列表緩存超時時間(當註冊列表沒有變化時)

responseCacheUpdateIntervalMs = 30 * 1000;

註冊列表緩存更新頻率。

useReadOnlyResponseCache = true;

是否開啓註冊列表的二級緩存。

disableDelta=false。

是否爲client提供增量信息。

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=true

是否啓用儀表盤

 

Spring Cloud實戰項目Jbone地址

github地址:https://github.com/417511458/jbone

碼雲地址:https://gitee.com/majunwei2017/jbone

相關文章
相關標籤/搜索