天天看點

微服務架構:Eureka參數配置項詳解

Eureka涉及到的參數配置項數量衆多,它的很多功能都是通過參數配置來實作的,了解這些參數的含義有助于我們更好的應用Eureka的各種功能,下面對Eureka的配置項做具體介紹,供大家參考。

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

執行個體微服務端配置

1、InstanceId

此執行個體注冊到eureka服務端的唯一的執行個體ID,其組成為${spring.application.name}:${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

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(*)

微服務架構:Eureka參數配置項詳解

門檻值因子,預設是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(*)

以上是Eureka配置項的詳細說明,分為Eureka用戶端配置、Eureka服務端配置和微服務端配置,一共100多項,其中有很多配置參數并不需要我們去修改,使用預設的就好,有些跟我們業務相關的配置參數可根據需要自行設定。

微服務架構:Eureka參數配置項詳解

往期精彩推薦

微服務架構:Eureka參數配置項詳解

—END—

關注作者微信公衆号 —《JAVA爛豬皮》

了解更多java後端架構知識以及最新面試寶典

微服務架構:Eureka參數配置項詳解

繼續閱讀