eureka配置詳解


Euraka配置詳解

Eureka包含四個部分的配置

  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的默認實現。

Eureka Instance的配置信息全部以eureka.instance.xxx的格式配置。

配置列表

  • appname = unknown

應用名,首先獲取spring.application.name的值,如果取值為空,則取默認unknown。

  • appGroupName = null

應用組名

  • instanceEnabledOnit = false

實例注冊到Eureka上是,是否立刻開啟通訊。有時候應用在准備好服務之前需要一些預處理。

  • 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 DashBoard注冊中心儀表盤配置

注冊中心儀表盤的配置主要是控制注冊中心的可視化展示。以eureka.dashboard.xxx的格式配置。

  • path="/"

儀表盤訪問路徑

  • enabled=true

是否啟用儀表盤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM