You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2021/09/14 09:24:11 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2336] re-add
watch idle timeout configuration (#2576)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 222de80 [SCB-2336] re-add watch idle timeout configuration (#2576)
222de80 is described below
commit 222de803cb805cb1fba3e3d914175a7d65b1afbe
Author: waibozie <85...@users.noreply.github.com>
AuthorDate: Tue Sep 14 17:24:05 2021 +0800
[SCB-2336] re-add watch idle timeout configuration (#2576)
---
.../client/http/RegistryWatchHttpClientOptionsSPI.java | 11 +++++++++++
.../serviceregistry/config/ServiceRegistryConfig.java | 11 +++++++++++
.../serviceregistry/config/ServiceRegistryConfigBuilder.java | 11 +++++++++++
.../serviceregistry/config/TestServiceRegistryConfig.java | 1 +
.../src/test/resources/microservice.yaml | 1 +
5 files changed, 35 insertions(+)
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryWatchHttpClientOptionsSPI.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryWatchHttpClientOptionsSPI.java
index 95059ab..fcdda24 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryWatchHttpClientOptionsSPI.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/RegistryWatchHttpClientOptionsSPI.java
@@ -63,4 +63,15 @@ public class RegistryWatchHttpClientOptionsSPI extends RegistryHttpClientOptions
public boolean isProxyEnable() {
return false;
}
+
+ /**
+ * getIdleTimeoutInSeconds configure watch idle timeout
+ * more information see: https://github.com/apache/servicecomb-java-chassis/issues/2571
+ * @return watch idle timeout in seconds
+ */
+ @Override
+ public int getIdleTimeoutInSeconds() {
+ return serviceRegistryConfig.getIdleWatchConnectionTimeout();
+ }
+
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
index a0a1c03..2afec72 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
@@ -82,6 +82,8 @@ public class ServiceRegistryConfig {
private int idleConnectionTimeout;
+ private int idleWatchConnectionTimeout;
+
private int requestTimeout;
//Set the timeout of the heartbeat request
@@ -225,6 +227,15 @@ public class ServiceRegistryConfig {
return this;
}
+ public int getIdleWatchConnectionTimeout() {
+ return idleWatchConnectionTimeout;
+ }
+
+ public ServiceRegistryConfig setIdleWatchConnectionTimeout(int idleWatchConnectionTimeout) {
+ this.idleWatchConnectionTimeout = idleWatchConnectionTimeout;
+ return this;
+ }
+
public int getRequestTimeout() {
return requestTimeout;
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
index 998b601..e996c43 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfigBuilder.java
@@ -56,6 +56,7 @@ class ServiceRegistryConfigBuilder {
.setWatchClientName(RegistryWatchHttpClientOptionsSPI.CLIENT_NAME)
.setConnectionTimeout(getConnectionTimeout())
.setIdleConnectionTimeout(getIdleConnectionTimeout())
+ .setIdleWatchConnectionTimeout(getIdleWatchTimeout())
.setRequestTimeout(getRequestTimeout())
.setHeartBeatRequestTimeout(getHeartBeatRequestTimeout())
.setHeartbeatInterval(getHeartbeatInterval())
@@ -149,6 +150,16 @@ class ServiceRegistryConfigBuilder {
return timeout < 1 ? ServiceRegistryConfig.DEFAULT_TIMEOUT_IN_SECONDS * 2 : timeout;
}
+ public int getIdleWatchTimeout() {
+ // watch idle timeout based on SC PING/PONG interval. SC default value is 30.
+ DynamicIntProperty property =
+ DynamicPropertyFactory.getInstance()
+ .getIntProperty("servicecomb.service.registry.client.timeout.watch",
+ ServiceRegistryConfig.DEFAULT_TIMEOUT_IN_SECONDS * 2);
+ int timeout = property.get();
+ return timeout < 1 ? ServiceRegistryConfig.DEFAULT_TIMEOUT_IN_SECONDS * 2 : timeout;
+ }
+
public int getRequestTimeout() {
DynamicIntProperty property =
DynamicPropertyFactory.getInstance()
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
index 865231d..baccda6 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestServiceRegistryConfig.java
@@ -66,5 +66,6 @@ public class TestServiceRegistryConfig {
Assert.assertEquals(8080, oConfig.getProxyPort());
Assert.assertNull(oConfig.getProxyUsername());
Assert.assertNull(oConfig.getProxyPasswd());
+ Assert.assertEquals(60, oConfig.getIdleWatchConnectionTimeout());
}
}
diff --git a/service-registry/registry-service-center/src/test/resources/microservice.yaml b/service-registry/registry-service-center/src/test/resources/microservice.yaml
index 3f21d12..3d9818a 100644
--- a/service-registry/registry-service-center/src/test/resources/microservice.yaml
+++ b/service-registry/registry-service-center/src/test/resources/microservice.yaml
@@ -44,6 +44,7 @@ servicecomb:
timeout:
connection: 30000
idle: 30000
+ watch: 60
instance:
watch: true
preferIpAddress: false