Eureka參數配置項
Eureka涉及到的參數配置項數量很多,它的很多功能都是通過參數配置來實現的,瞭解這些參數的含義可以幫我們更好的應用Eureka的各種功能;分爲Eureka服務端配置、Eureka客戶端配置和微服務端配置,其中有很多配置參數並不需要我們去修改,使用默認的就好,有些跟我們業務相關的配置參數可根據需要自行設置,下面是對Eureka的配置項做具體介紹:
1. Eureka服務端配置:
序號 | 屬性 | 說明 |
---|---|---|
1 | AWSAccessId | 獲取aws訪問的id,主要用於彈性ip綁定,此配置是用於aws上的,默認爲null |
2 | AWSSecretKey | 獲取aws私有祕鑰,主要用於彈性ip綁定,此配置是用於aws上的,默認爲null |
3 | EIPBindRebindRetries | 獲取服務器嘗試綁定到候選的EIP的次數,默認爲3 |
4 | EIPBindingRetryIntervalMsWhenUnbound(*) | 服務器檢查ip綁定的時間間隔,單位爲毫秒,默認爲1 * 60 * 1000 |
5 | EIPBindingRetryIntervalMs | 與上面的是同一作用,僅僅是穩定狀態檢查,默認爲5 * 60 * 1000 |
6 | EnableSelfPreservation | 自我保護模式,當出現出現網絡分區、eureka在短時間內丟失過多客戶端時,會進入自我保護模式,即一個服務長時間沒有發送心跳,eureka也不會將其刪除,默認爲true |
7 | RenewalPercentThreshold(*) | 閾值因子,默認是0.85,如果閾值比最小值大,則自我保護模式開啓 |
8 | RenewalThresholdUpdateIntervalMs | 閾值更新的時間間隔,單位爲毫秒,默認爲15 * 60 * 1000 |
9 | PeerEurekaNodesUpdateIntervalMs(*) | 集羣裏eureka節點的變化信息更新的時間間隔,單位爲毫秒,默認爲10 * 60 * 1000 |
10 | EnableReplicatedRequestCompression | 複製的數據在發送請求時是否被壓縮,默認爲false |
11 | NumberOfReplicationRetries | 獲取集羣裏服務器嘗試複製數據的次數,默認爲5 |
12 | PeerEurekaStatusRefreshTimeIntervalMs | 服務器節點的狀態信息被更新的時間間隔,單位爲毫秒,默認爲30 * 1000 |
13 | WaitTimeInMsWhenSyncEmpty(*) | 在Eureka服務器獲取不到集羣裏對等服務器上的實例時,需要等待的時間,單位爲毫秒,默認爲1000 * 60 * 5 |
14 | PeerNodeConnectTimeoutMs | 連接對等節點服務器複製的超時的時間,單位爲毫秒,默認爲200 |
15 | PeerNodeReadTimeoutMs | 讀取對等節點服務器複製的超時的時間,單位爲毫秒,默認爲200 |
16 | PeerNodeTotalConnections | 獲取對等節點上http連接的總數,默認爲1000 |
17 | PeerNodeTotalConnectionsPerHost(*) | 獲取特定的對等節點上http連接的總數,默認爲500 |
18 | PeerNodeConnectionIdleTimeoutSeconds(*) | http連接被清理之後服務器的空閒時間,默認爲30秒 |
19 | RetentionTimeInMSInDeltaQueue(*) | 客戶端保持增量信息緩存的時間,從而保證不會丟失這些信息,單位爲毫秒,默認爲3 * 60 * 1000 |
20 | DeltaRetentionTimerIntervalInMs | 清理任務程序被喚醒的時間間隔,清理過期的增量信息,單位爲毫秒,默認爲30 * 1000 |
21 | EvictionIntervalTimerInMs | 過期實例應該啓動並運行的時間間隔,單位爲毫秒,默認爲60 * 1000 |
22 | ASGQueryTimeoutMs(*) | 查詢AWS上ASG(自動縮放組)信息的超時值,單位爲毫秒,默認爲300 |
23 | ASGUpdateIntervalMs | 從AWS上更新ASG信息的時間間隔,單位爲毫秒,默認爲5 * 60 * 1000 |
24 | ASGCacheExpiryTimeoutMs(*) | 緩存ASG信息的到期時間,單位爲毫秒,默認爲10 * 60 * 1000 |
25 | ResponseCacheAutoExpirationInSeconds(*) | 當註冊表信息被改變時,則其被保存在緩存中不失效的時間,默認爲180秒 |
26 | ResponseCacheUpdateIntervalMs(*) | 客戶端的有效負載緩存應該更新的時間間隔,默認爲30 * 1000毫秒 |
27 | UseReadOnlyResponseCache(*) | 目前採用的是二級緩存策略,一個是讀寫高速緩存過期策略,另一個沒有過期只有只讀緩存,默認爲true,表示只讀緩存 |
28 | DisableDelta(*) | 增量信息是否可以提供給客戶端看,默認爲false |
29 | MaxIdleThreadInMinutesAgeForStatusReplication(*) | 狀態複製線程可以保持存活的空閒時間,默認爲10分鐘 |
30 | MinThreadsForStatusReplication | 被用於狀態複製的線程的最小數目,默認爲1 |
31 | MaxThreadsForStatusReplication | 被用於狀態複製的線程的最大數目,默認爲1 |
32 | MaxElementsInStatusReplicationPool | 可允許的狀態複製池備份複製事件的最大數量,默認爲10000 |
33 | SyncWhenTimestampDiffers | 當時間變化實例是否跟着同步,默認爲true |
34 | RegistrySyncRetries | 當eureka服務器啓動時嘗試去獲取集羣裏其他服務器上的註冊信息的次數,默認爲5 |
35 | RegistrySyncRetryWaitMs | 當eureka服務器啓動時獲取其他服務器的註冊信息失敗時,會再次嘗試獲取,期間需要等待的時間,默認爲30 * 1000毫秒 |
36 | MaxElementsInPeerReplicationPool(*) | 複製池備份複製事件的最大數量,默認爲10000 |
37 | MaxIdleThreadAgeInMinutesForPeerReplication(*) | 複製線程可以保持存活的空閒時間,默認爲15分鐘 |
38 | MinThreadsForPeerReplication(*) | 獲取將被用於複製線程的最小數目,默認爲5 |
39 | MaxThreadsForPeerReplication | 獲取將被用於複製線程的最大數目,默認爲20 |
40 | MaxTimeForReplication(*) | 嘗試在丟棄複製事件之前進行復制的時間,默認爲30000毫秒 |
41 | PrimeAwsReplicaConnections(*) | 對集羣中服務器節點的連接是否應該準備,默認爲true |
42 | DisableDeltaForRemoteRegions(*) | 增量信息是否可以提供給客戶端或一些遠程地區,默認爲false |
43 | RemoteRegionConnectTimeoutMs(*) | 連接到對等遠程地eureka節點的超時時間,默認爲1000毫秒 |
44 | RemoteRegionReadTimeoutMs(*) | 獲取從遠程地區eureka節點讀取信息的超時時間,默認爲1000毫秒 |
45 | RemoteRegionTotalConnections | 獲取遠程地區對等節點上http連接的總數,默認爲1000 |
46 | RemoteRegionTotalConnectionsPerHost | 獲取遠程地區特定的對等節點上http連接的總數,默認爲500 |
47 | RemoteRegionConnectionIdleTimeoutSeconds | http連接被清理之後遠程地區服務器的空閒時間,默認爲30秒 |
48 | GZipContentFromRemoteRegion(*) | eureka服務器中獲取的內容是否在遠程地區被壓縮,默認爲true |
49 | RemoteRegionUrlsWithName | 針對遠程地區發現的網址域名的map |
50 | RemoteRegionUrls | 遠程地區的URL列表 |
51 | RemoteRegionAppWhitelist(*) | 必須通過遠程區域中檢索的應用程序的列表 |
52 | RemoteRegionRegistryFetchInterval | 從遠程區域取出該註冊表的信息的時間間隔,默認爲30秒 |
53 | RemoteRegionFetchThreadPoolSize | 用於執行遠程區域註冊表請求的線程池的大小,默認爲20 |
54 | RemoteRegionTrustStore | 來合格請求遠程區域註冊表的信任存儲文件,默認爲空 |
55 | RemoteRegionTrustStorePassword | 獲取偏遠地區信任存儲文件的密碼,默認爲“changeit” |
56 | disableTransparentFallbackToOtherRegion(*) | 如果在遠程區域本地沒有實例運行,對於應用程序回退的舊行爲是否被禁用, 默認爲false |
57 | BatchReplication(*) | 表示集羣節點之間的複製是否爲了網絡效率而進行批處理,默認爲false |
58 | LogIdentityHeaders(*) | eureka服務器是否應該登錄clientAuthHeaders,默認爲true |
59 | RateLimiterEnabled | 限流是否應啓用或禁用,默認爲false |
60 | RateLimiterThrottleStandardClients | 是否對標準客戶端進行限流,默認false |
61 | RateLimiterPrivilegedClients(*) | 認證的客戶端列表,這裏是除了標準的eureka Java客戶端 |
62 | RateLimiterBurstSize(*) | 速率限制的burst size ,默認爲10,這裏用的是令牌桶算法 |
63 | RateLimiterRegistryFetchAverageRate(*) | 速率限制器用的是令牌桶算法,此配置指定平均執行註冊請求速率,默認爲500 |
64 | RateLimiterFullFetchAverageRate(*) | 速率限制器用的是令牌桶算法,此配置指定平均執行請求速率,默認爲100 |
65 | ListAutoScalingGroupsRoleName(*) | 用來描述從AWS第三賬戶的自動縮放組中的角色名稱,默認爲“ListAutoScalingGroups” |
66 | JsonCodecName(*) | 如果沒有設置默認的編解碼器將使用全JSON編解碼器,獲取的是編碼器的類名稱 |
67 | XmlCodecName(*) | 如果沒有設置默認的編解碼器將使用xml編解碼器,獲取的是編碼器的類名稱 |
68 | BindingStrategy(*) | 獲取配置綁定EIP或Route53的策略 |
69 | Route53DomainTTL(*) | 用於建立route53域的ttl,默認爲301 |
70 | Route53BindRebindRetries(*) | 服務器嘗試綁定到候選Route53域的次數,默認爲3 |
71 | Route53BindingRetryIntervalMs(*) | 服務器應該檢查是否和Route53域綁定的時間間隔,默認爲5 * 60 * 1000毫秒 |
72 | Experimental(*) | 當嘗試新功能遷移過程時,爲了避免配置API污染,相應的配置即可投入實驗配置部分,默認爲null |
2. Eureka客戶端配置
序號 | 屬性 | 說明 |
---|---|---|
1 | RegistryFetchIntervalSeconds | 從eureka服務器註冊表中獲取註冊信息的時間間隔(s),默認爲30秒 |
2 | InstanceInfoReplicationIntervalSeconds | 複製實例變化信息到eureka服務器所需要的時間間隔(s),默認爲30秒 |
3 | InitialInstanceInfoReplicationIntervalSeconds | 最初複製實例信息到eureka服務器所需的時間(s),默認爲40秒 |
4 | EurekaServiceUrlPollIntervalSeconds | 詢問Eureka服務url信息變化的時間間隔(s),默認爲300秒 |
5 | ProxyHost | 獲取eureka服務的代理主機,默認爲null |
6 | ProxyProxyPort | 獲取eureka服務的代理端口, 默認爲null |
7 | ProxyUserName | 獲取eureka服務的代理用戶名,默認爲null |
8 | ProxyPassword | 獲取eureka服務的代理密碼,默認爲null |
9 | GZipContent | eureka註冊表的內容是否被壓縮,默認爲true,並且是在最好的網絡流量下被壓縮 |
10 | EurekaServerReadTimeoutSeconds | eureka需要超時讀取之前需要等待的時間,默認爲8秒 |
11 | EurekaServerConnectTimeoutSeconds | eureka需要超時連接之前需要等待的時間,默認爲5秒 |
12 | BackupRegistryImpl | 獲取實現了eureka客戶端在第一次啓動時讀取註冊表的信息作爲回退選項的實現名稱 |
13 | EurekaServerTotalConnections | eureka客戶端允許所有eureka服務器連接的總數目,默認是200 |
14 | EurekaServerTotalConnectionsPerHost | eureka客戶端允許eureka服務器主機連接的總數目,默認是50 |
15 | EurekaServerURLContext | 表示eureka註冊中心的路徑,如果配置爲eureka,則爲http://x.x.x.x:x/eureka/,在eureka的配置文件中加入此配置表示eureka作爲客戶端向註冊中心註冊,從而構成eureka集羣。此配置只有在eureka服務器ip地址列表是在DNS中才會用到,默認爲null |
16 | EurekaServerPort | 獲取eureka服務器的端口,此配置只有在eureka服務器ip地址列表是在DNS中才會用到。默認爲null |
17 | EurekaServerDNSName | 獲取要查詢的DNS名稱來獲得eureka服務器,此配置只有在eureka服務器ip地址列表是在DNS中才會用到。默認爲null |
18 | UseDnsForFetchingServiceUrls | eureka客戶端是否應該使用DNS機制來獲取eureka服務器的地址列表,默認爲false |
19 | RegisterWithEureka | 實例是否在eureka服務器上註冊自己的信息以供其他服務發現,默認爲true |
20 | PreferSameZoneEureka | 實例是否使用同一zone裏的eureka服務器,默認爲true,理想狀態下,eureka客戶端與服務端是在同一zone下 |
21 | AllowRedirects | 服務器是否能夠重定向客戶端請求到備份服務器。 如果設置爲false,服務器將直接處理請求,如果設置爲true,它可能發送HTTP重定向到客戶端。默認爲false |
22 | LogDeltaDiff | 是否記錄eureka服務器和客戶端之間在註冊表的信息方面的差異,默認爲false |
23 | DisableDelta(*) | 默認爲false |
24 | fetchRegistryForRemoteRegions | eureka服務註冊表信息裏的以逗號隔開的地區名單,如果不這樣返回這些地區名單,則客戶端啓動將會出錯。默認爲null |
25 | Region | 獲取實例所在的地區。默認爲us-east-1 |
26 | AvailabilityZones | 獲取實例所在的地區下可用性的區域列表,用逗號隔開 |
27 | EurekaServerServiceUrls | Eureka服務器的連接,默認爲http://XXXX:X/eureka/,但是如果採用DNS方式獲取服務地址,則不需要配置此設置 |
28 | FilterOnlyUpInstances(*) | 是否獲得處於開啓狀態的實例的應用程序過濾之後的應用程序。默認爲true |
29 | EurekaConnectionIdleTimeoutSeconds | Eureka服務的http請求關閉之前其響應的時間,默認爲30 秒 |
30 | FetchRegistry | 此客戶端是否獲取eureka服務器註冊表上的註冊信息,默認爲true |
31 | RegistryRefreshSingleVipAddress | 此客戶端只對一個單一的VIP註冊表的信息感興趣。默認爲null |
32 | HeartbeatExecutorThreadPoolSize(*) | 心跳執行程序線程池的大小,默認爲5 |
33 | HeartbeatExecutorExponentialBackOffBound(*) | 心跳執行程序回退相關的屬性,是重試延遲的最大倍數值,默認爲10 |
34 | CacheRefreshExecutorThreadPoolSize(*) | 執行程序緩存刷新線程池的大小,默認爲5 |
35 | CacheRefreshExecutorExponentialBackOffBound | 執行程序指數回退刷新的相關屬性,是重試延遲的最大倍數值,默認爲10 |
36 | DollarReplacement | eureka服務器序列化/反序列化的信息中獲取“$”符號的的替換字符串。默認爲“_-” |
37 | EscapeCharReplacement | eureka服務器序列化/反序列化的信息中獲取“_”符號的的替換字符串。默認爲“__” |
38 | OnDemandUpdateStatusChange(*) | 如果設置爲true,客戶端的狀態更新將會點播更新到遠程服務器上,默認爲true |
39 | EncoderName | 這是一個短暫的編碼器的配置,如果最新的編碼器是穩定的,則可以去除,默認爲null |
40 | DecoderName | 這是一個短暫的解碼器的配置,如果最新的解碼器是穩定的,則可以去除,默認爲null |
41 | ClientDataAccept(*) | 客戶端數據接收 |
42 | Experimental(*) | 當嘗試新功能遷移過程時,爲了避免配置API污染,相應的配置即可投入實驗配置部分,默認爲null |
3. 微服務端配置
序號 | 屬性 | 說明 |
---|---|---|
1 | InstanceId | 此實例註冊到eureka服務端的唯一的實例ID,其組成爲{spring.application.instance_id:${random.value}} |
2 | Appname | 獲得在eureka服務上註冊的應用程序的名字,默認爲unknow |
3 | AppGroupName | 獲得在eureka服務上註冊的應用程序組的名字,默認爲unknow |
4 | InstanceEnabledOnit(*) | 實例註冊到eureka服務器時,是否開啓通訊,默認爲false |
5 | NonSecurePort | 獲取該實例應該接收通信的非安全端口。默認爲80 |
6 | SecurePort | 獲取該實例應該接收通信的安全端口,默認爲443 |
7 | NonSecurePortEnabled | 該實例應該接收通信的非安全端口是否啓用,默認爲true |
8 | SecurePortEnabled | 該實例應該接收通信的安全端口是否啓用,默認爲false |
9 | LeaseRenewalIntervalInSeconds | eureka客戶需要多長時間發送心跳給eureka服務器,表明它仍然活着,默認爲30 秒 |
10 | LeaseExpirationDurationInSeconds | eureka服務器在接收到實例的最後一次發出的心跳後,需要等待多久纔可以將此實例刪除,默認爲90秒 |
11 | VirtualHostName | 此實例定義的虛擬主機名,其他實例將通過使用虛擬主機名找到該實例 |
12 | SecureVirtualHostName | 此實例定義的安全虛擬主機名 |
13 | ASGName(*) | 與此實例相關聯 AWS自動縮放組名稱。此項配置是在AWS環境專門使用的實例啓動,它已被用於流量停用後自動把一個實例退出服務 |
14 | HostName | 與此實例相關聯的主機名,是其他實例可以用來進行請求的準確名稱 |
15 | MetadataMap(*) | 獲取與此實例相關聯的元數據(key,value)。這個信息被髮送到eureka服務器,其他實例可以使用 |
16 | DataCenterInfo(*) | 該實例被部署在數據中心 |
17 | IpAddress | 獲取實例的ip地址 |
18 | StatusPageUrlPath(*) | 獲取此實例狀態頁的URL路徑,然後構造出主機名,安全端口等,默認爲/info |
19 | StatusPageUrl(*) | 獲取此實例絕對狀態頁的URL路徑,爲其他服務提供信息時來找到這個實例的狀態的路徑,默認爲null |
20 | HomePageUrlPath(*) | 獲取此實例的相關主頁URL路徑,然後構造出主機名,安全端口等,默認爲/ |
21 | HomePageUrl(*) | 獲取此實例的絕對主頁URL路徑,爲其他服務提供信息時使用的路徑,默認爲null |
22 | HealthCheckUrlPath | 獲取此實例的相對健康檢查URL路徑,默認爲/health |
23 | HealthCheckUrl | 獲取此實例的絕對健康檢查URL路徑,默認爲null |
24 | SecureHealthCheckUrl | 獲取此實例的絕對安全健康檢查網頁的URL路徑,默認爲null |
25 | DefaultAddressResolutionOrder | 獲取實例的網絡地址,默認爲[] |
26 | Namespace | 獲取用於查找屬性的命名空間,默認爲eureka |