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 5663066  [SCB-2184]common http client api refactor to support users 
need (#2216)
5663066 is described below

commit 5663066db82e84452a06c17f6d9247b78261399d
Author: bao liu <[email protected]>
AuthorDate: Wed Jan 27 09:06:06 2021 +0800

    [SCB-2184]common http client api refactor to support users need (#2216)
---
 .../config/center/client/ConfigCenterManager.java  | 29 +++++++++++++++++-----
 .../http/client/common/HttpTransportFactory.java   | 21 ++++++++++------
 .../http/client/common/HttpTransportImpl.java      |  2 +-
 3 files changed, 38 insertions(+), 14 deletions(-)

diff --git 
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
 
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
index e328448..32edd16 100644
--- 
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
+++ 
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterManager.java
@@ -23,8 +23,13 @@ import org.apache.servicecomb.http.client.task.AbstractTask;
 import org.apache.servicecomb.http.client.task.Task;
 
 import com.google.common.eventbus.EventBus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ConfigCenterManager extends AbstractTask {
+
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(ConfigCenterManager.class);
+
   private static final long POLL_INTERVAL = 15000;
 
   private ConfigCenterClient configCenterClient;
@@ -44,18 +49,30 @@ public class ConfigCenterManager extends AbstractTask {
   }
 
   public void startConfigCenterManager() {
-    this.startTask(new PollConfigurationTask());
+    this.startTask(new PollConfigurationTask(0));
   }
 
   class PollConfigurationTask implements Task {
+    int failCount;
+
+    public PollConfigurationTask(int failCount) {
+      this.failCount = failCount;
+    }
+
     @Override
     public void execute() {
-      QueryConfigurationsResponse response = 
configCenterClient.queryConfigurations(queryConfigurationsRequest);
-      if (response.isChanged()) {
-        queryConfigurationsRequest.setRevision(response.getRevision());
-        eventBus.post(new 
ConfigurationChangedEvent(response.getConfigurations()));
+      try {
+        QueryConfigurationsResponse response = 
configCenterClient.queryConfigurations(queryConfigurationsRequest);
+        if (response.isChanged()) {
+          queryConfigurationsRequest.setRevision(response.getRevision());
+          eventBus.post(new 
ConfigurationChangedEvent(response.getConfigurations()));
+        }
+        startTask(new BackOffSleepTask(POLL_INTERVAL, new 
PollConfigurationTask(0)));
+      } catch (Exception e) {
+        LOGGER.error("get configurations from ConfigCenter failed, and will 
try again.", e);
+        startTask(new BackOffSleepTask(failCount + 1, new 
PollConfigurationTask(failCount + 1)));
       }
-      startTask(new BackOffSleepTask(POLL_INTERVAL, new 
PollConfigurationTask()));
     }
+
   }
 }
diff --git 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportFactory.java
 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportFactory.java
index 2a2ee92..d9188ce 100644
--- 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportFactory.java
+++ 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportFactory.java
@@ -45,13 +45,7 @@ public class HttpTransportFactory {
   }
 
   public static HttpTransport 
createHttpTransport(HttpConfiguration.SSLProperties sslProperties,
-      RequestAuthHeaderProvider requestAuthHeaderProvider) {
-    RequestConfig config = RequestConfig.custom()
-        .setConnectTimeout(CONNECT_TIMEOUT)
-        .setConnectionRequestTimeout(
-            CONNECTION_REQUEST_TIMEOUT)
-        .setSocketTimeout(SOCKET_TIMEOUT).build();
-
+      RequestAuthHeaderProvider requestAuthHeaderProvider, RequestConfig 
config) {
     //register http/https socket factory
     RegistryBuilder<ConnectionSocketFactory> builder = 
RegistryBuilder.<ConnectionSocketFactory>create();
     builder.register("http", PlainConnectionSocketFactory.INSTANCE);
@@ -76,4 +70,17 @@ public class HttpTransportFactory {
 
     return new HttpTransportImpl(httpClientBuilder.build(), 
requestAuthHeaderProvider);
   }
+
+  public static HttpTransport 
createHttpTransport(HttpConfiguration.SSLProperties sslProperties,
+      RequestAuthHeaderProvider requestAuthHeaderProvider) {
+    return createHttpTransport(sslProperties, requestAuthHeaderProvider, 
defaultRequestConfig().build());
+  }
+
+  public static RequestConfig.Builder defaultRequestConfig() {
+    return RequestConfig.custom()
+        .setConnectTimeout(CONNECT_TIMEOUT)
+        .setConnectionRequestTimeout(
+            CONNECTION_REQUEST_TIMEOUT)
+        .setSocketTimeout(SOCKET_TIMEOUT);
+  }
 }
diff --git 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportImpl.java
 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportImpl.java
index 4f58dab..429f5bd 100644
--- 
a/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportImpl.java
+++ 
b/clients/http-client-common/src/main/java/org/apache/servicecomb/http/client/common/HttpTransportImpl.java
@@ -81,7 +81,7 @@ public class HttpTransportImpl implements HttpTransport {
   public HttpResponse doRequest(HttpRequest httpRequest) throws IOException {
     //add header
     httpRequest.addHeader(HEADER_CONTENT_TYPE, "application/json");
-    httpRequest.addHeader(HEADER_USER_AGENT, 
"cse-serviceregistry-client/1.0.0");
+    httpRequest.addHeader(HEADER_USER_AGENT, "microservice-client/1.0.0");
 
     if (globalHeaders != null) {
       globalHeaders.forEach(httpRequest::addHeader);

Reply via email to