From 195cd3e049d2586ef0779890c5a8a63d9fc3f94e Mon Sep 17 00:00:00 2001 From: saga Date: Thu, 8 Nov 2018 03:20:18 +0800 Subject: [PATCH] Upgrade eureka version (#3257) * Upgrade eureka version * Update the code --- spring-cloud-netflix-dependencies/pom.xml | 2 +- .../server/EurekaServerAutoConfiguration.java | 2 +- .../eureka/server/EurekaServerConfigBean.java | 59 ++++++++++++++++++- .../eureka/server/InstanceRegistry.java | 4 +- .../server/InstanceRegistryProperties.java | 24 ++++---- 5 files changed, 73 insertions(+), 18 deletions(-) diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 49d321158..3a4a83ac8 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -16,7 +16,7 @@ 0.7.6 0.1.6 - 1.9.3 + 1.9.6 1.5.12 2.2.5 0.12.21 diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java index a90cb7e80..490aa581a 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.java @@ -164,7 +164,7 @@ public class EurekaServerAutoConfiguration extends WebMvcConfigurerAdapter { this.eurekaClient.getApplications(); // force initialization return new InstanceRegistry(this.eurekaServerConfig, this.eurekaClientConfig, serverCodecs, this.eurekaClient, - this.instanceRegistryProperties.getExpectedNumberOfRenewsPerMin(), + this.instanceRegistryProperties.getExpectedNumberOfClientsSendingRenews(), this.instanceRegistryProperties.getDefaultOpenForTrafficCount()); } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java index 80c785d4c..fec993a0d 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfigBean.java @@ -190,6 +190,14 @@ public class EurekaServerConfigBean implements EurekaServerConfig { private int minAvailableInstancesForPeerReplication = -1; + private int initialCapacityOfResponseCache = 1000; + + private int expectedClientRenewalIntervalSeconds = 30; + + private boolean useAwsAsgApi = true; + + private String myUrl; + @Override public boolean shouldEnableSelfPreservation() { return this.enableSelfPreservation; @@ -236,6 +244,15 @@ public class EurekaServerConfigBean implements EurekaServerConfig { return this.batchReplication; } + @Override + public String getMyUrl() { + return this.myUrl; + } + + public void setMyUrl(String myUrl) { + this.myUrl = myUrl; + } + @Override public boolean shouldLogIdentityHeaders() { return this.logIdentityHeaders; @@ -270,6 +287,16 @@ public class EurekaServerConfigBean implements EurekaServerConfig { return null; } + @Override + public int getInitialCapacityOfResponseCache() { + return this.initialCapacityOfResponseCache; + } + + public void setInitialCapacityOfResponseCache(int initialCapacityOfResponseCache) { + this.initialCapacityOfResponseCache = initialCapacityOfResponseCache; + } + + @Override public int getHealthStatusMinNumberOfAvailablePeers() { return this.minAvailableInstancesForPeerReplication; @@ -346,6 +373,15 @@ public class EurekaServerConfigBean implements EurekaServerConfig { return renewalThresholdUpdateIntervalMs; } + @Override + public int getExpectedClientRenewalIntervalSeconds() { + return this.expectedClientRenewalIntervalSeconds; + } + + public void setExpectedClientRenewalIntervalSeconds(int expectedClientRenewalIntervalSeconds) { + this.expectedClientRenewalIntervalSeconds = expectedClientRenewalIntervalSeconds; + } + public void setRenewalThresholdUpdateIntervalMs( int renewalThresholdUpdateIntervalMs) { this.renewalThresholdUpdateIntervalMs = renewalThresholdUpdateIntervalMs; @@ -457,6 +493,15 @@ public class EurekaServerConfigBean implements EurekaServerConfig { return evictionIntervalTimerInMs; } + @Override + public boolean shouldUseAwsAsgApi() { + return this.useAwsAsgApi; + } + + public void setUseAwsAsgApi(boolean useAwsAsgApi) { + this.useAwsAsgApi = useAwsAsgApi; + } + public void setEvictionIntervalTimerInMs(long evictionIntervalTimerInMs) { this.evictionIntervalTimerInMs = evictionIntervalTimerInMs; } @@ -996,7 +1041,11 @@ public class EurekaServerConfigBean implements EurekaServerConfig { syncWhenTimestampDiffers == that.syncWhenTimestampDiffers && useReadOnlyResponseCache == that.useReadOnlyResponseCache && waitTimeInMsWhenSyncEmpty == that.waitTimeInMsWhenSyncEmpty && - Objects.equals(xmlCodecName, that.xmlCodecName); + Objects.equals(xmlCodecName, that.xmlCodecName) && + initialCapacityOfResponseCache == that.initialCapacityOfResponseCache && + expectedClientRenewalIntervalSeconds == that.expectedClientRenewalIntervalSeconds && + useAwsAsgApi == that.useAwsAsgApi && + Objects.equals(myUrl, that.myUrl); } @Override @@ -1037,7 +1086,9 @@ public class EurekaServerConfigBean implements EurekaServerConfig { responseCacheUpdateIntervalMs, retentionTimeInMSInDeltaQueue, route53BindRebindRetries, route53BindingRetryIntervalMs, route53DomainTTL, syncWhenTimestampDiffers, - useReadOnlyResponseCache, waitTimeInMsWhenSyncEmpty, xmlCodecName); + useReadOnlyResponseCache, waitTimeInMsWhenSyncEmpty, xmlCodecName, + initialCapacityOfResponseCache, expectedClientRenewalIntervalSeconds, + useAwsAsgApi, myUrl); } @Override @@ -1116,6 +1167,10 @@ public class EurekaServerConfigBean implements EurekaServerConfig { .append("useReadOnlyResponseCache", this.useReadOnlyResponseCache) .append("waitTimeInMsWhenSyncEmpty", this.waitTimeInMsWhenSyncEmpty) .append("xmlCodecName", this.xmlCodecName) + .append("initialCapacityOfResponseCache", this.initialCapacityOfResponseCache) + .append("expectedClientRenewalIntervalSeconds", this.expectedClientRenewalIntervalSeconds) + .append("useAwsAsgApi", this.useAwsAsgApi) + .append("myUrl", this.myUrl) .toString(); } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistry.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistry.java index 4ef2568ff..135c40d79 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistry.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistry.java @@ -52,11 +52,11 @@ public class InstanceRegistry extends PeerAwareInstanceRegistryImpl public InstanceRegistry(EurekaServerConfig serverConfig, EurekaClientConfig clientConfig, ServerCodecs serverCodecs, - EurekaClient eurekaClient, int expectedNumberOfRenewsPerMin, + EurekaClient eurekaClient, int expectedNumberOfClientsSendingRenews, int defaultOpenForTrafficCount) { super(serverConfig, clientConfig, serverCodecs, eurekaClient); - this.expectedNumberOfRenewsPerMin = expectedNumberOfRenewsPerMin; + this.expectedNumberOfClientsSendingRenews = expectedNumberOfClientsSendingRenews; this.defaultOpenForTrafficCount = defaultOpenForTrafficCount; } diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryProperties.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryProperties.java index 87a0ebaca..0b83326a0 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryProperties.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/InstanceRegistryProperties.java @@ -30,28 +30,28 @@ public class InstanceRegistryProperties { public static final String PREFIX = "eureka.instance.registry"; - - /* Default number of expected renews per minute, defaults to 1. - * Setting expectedNumberOfRenewsPerMin to non-zero to ensure that even an isolated + /* Default number of expected client, defaults to 1. + * Setting expectedNumberOfClientsSendingRenews to non-zero to ensure that even an isolated * server can adjust its eviction policy to the number of registrations (when it's * zero, even a successful registration won't reset the rate threshold in * InstanceRegistry.register()). */ - @Value("${eureka.server.expectedNumberOfRenewsPerMin:1}") // for backwards compatibility - private int expectedNumberOfRenewsPerMin = 1; + @Value("${eureka.server.expectedNumberOfClientsSendingRenews:1}") // for backwards compatibility + private int expectedNumberOfClientsSendingRenews = 1; + + public int getExpectedNumberOfClientsSendingRenews() { + return expectedNumberOfClientsSendingRenews; + } + + public void setExpectedNumberOfClientsSendingRenews(int expectedNumberOfClientsSendingRenews) { + this.expectedNumberOfClientsSendingRenews = expectedNumberOfClientsSendingRenews; + } /** Value used in determining when leases are cancelled, default to 1 for standalone. * Should be set to 0 for peer replicated eurekas */ @Value("${eureka.server.defaultOpenForTrafficCount:1}") // for backwards compatibility private int defaultOpenForTrafficCount = 1; - public int getExpectedNumberOfRenewsPerMin() { - return expectedNumberOfRenewsPerMin; - } - - public void setExpectedNumberOfRenewsPerMin(int expectedNumberOfRenewsPerMin) { - this.expectedNumberOfRenewsPerMin = expectedNumberOfRenewsPerMin; - } public int getDefaultOpenForTrafficCount() { return defaultOpenForTrafficCount;