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);