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/06/07 12:06:48 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2274]change
connecting config/dashboard services rule to round robin (#2404)
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 efbeee2 [SCB-2274]change connecting config/dashboard services rule to round robin (#2404)
efbeee2 is described below
commit efbeee2f21c356084b829c84af0afded80612d36
Author: liubao68 <bi...@qq.com>
AuthorDate: Mon Jun 7 20:06:24 2021 +0800
[SCB-2274]change connecting config/dashboard services rule to round robin (#2404)
---
.../config/center/client/AddressManager.java | 12 +--
.../config/center/client/ConfigCenterClient.java | 14 ++-
.../servicecomb/config/kie/client/KieClient.java | 26 ++---
.../config/kie/client/model/KieAddressManager.java | 16 +--
.../service/center/client/AddressManager.java | 19 ++--
.../center/client/ServiceCenterRawClient.java | 2 -
.../service/center/client/ServiceCenterWatch.java | 26 ++---
demo/demo-cse-v1/pom.xml | 4 +
.../dashboard/monitor/AddressManager.java | 117 ++++-----------------
.../monitor/DefaultMonitorDataPublisher.java | 36 +++----
10 files changed, 92 insertions(+), 180 deletions(-)
diff --git a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/AddressManager.java b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/AddressManager.java
index cc073ff..28772d4 100644
--- a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/AddressManager.java
+++ b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/AddressManager.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.config.center.client;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
import org.apache.commons.lang.StringUtils;
import org.apache.servicecomb.http.client.common.HttpUtils;
@@ -31,13 +30,12 @@ public class AddressManager {
private final List<String> addresses;
- private int index;
+ private int index = 0;
public AddressManager(String projectName, List<String> addresses) {
this.projectName = StringUtils.isEmpty(projectName) ? DEFAULT_PROJECT : projectName;
this.addresses = new ArrayList<>(addresses.size());
addresses.forEach((address -> this.addresses.add(formatAddress(address))));
- this.index = new Random().nextInt(addresses.size());
}
private String formatAddress(String address) {
@@ -48,18 +46,12 @@ public class AddressManager {
}
}
- public String nextAddress() {
+ public String address() {
synchronized (this) {
this.index++;
if (this.index >= addresses.size()) {
this.index = 0;
}
- }
- return address();
- }
-
- public String address() {
- synchronized (this) {
return addresses.get(index);
}
}
diff --git a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
index c362804..3e668d2 100644
--- a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
+++ b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
@@ -30,10 +30,14 @@ import org.apache.servicecomb.http.client.common.HttpRequest;
import org.apache.servicecomb.http.client.common.HttpResponse;
import org.apache.servicecomb.http.client.common.HttpTransport;
import org.apache.servicecomb.http.client.common.HttpUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.type.TypeReference;
public class ConfigCenterClient implements ConfigCenterOperation {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigCenterClient.class);
+
public static final String DEFAULT_APP_SEPARATOR = "@";
public static final String DEFAULT_SERVICE_SEPARATOR = "#";
@@ -57,11 +61,15 @@ public class ConfigCenterClient implements ConfigCenterOperation {
QueryConfigurationsResponse queryConfigurationsResponse = new QueryConfigurationsResponse();
Map<String, Object> configurations = new HashMap<>();
+
+ String uri = null;
try {
+ uri = addressManager.address() + "/configuration/items?dimensionsInfo="
+ + HttpUtils.encodeURLParam(dimensionsInfo) + "&revision=" + request.getRevision();
+
Map<String, String> headers = new HashMap<>();
headers.put("x-environment", request.getEnvironment());
- HttpRequest httpRequest = new HttpRequest(addressManager.address() + "/configuration/items?dimensionsInfo="
- + HttpUtils.encodeURLParam(dimensionsInfo) + "&revision=" + request.getRevision(), headers, null,
+ HttpRequest httpRequest = new HttpRequest(uri, headers, null,
HttpRequest.GET);
HttpResponse httpResponse = httpTransport.doRequest(httpRequest);
@@ -104,7 +112,7 @@ public class ConfigCenterClient implements ConfigCenterOperation {
+ httpResponse.getContent());
}
} catch (IOException e) {
- addressManager.nextAddress();
+ LOGGER.error("query configuration from {} failed, message={}", uri, e.getMessage());
throw new OperationException("", e);
}
}
diff --git a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
index 4a1fdb6..bd84505 100644
--- a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
+++ b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
@@ -66,19 +66,19 @@ public class KieClient implements KieConfigOperation {
@Override
public ConfigurationsResponse queryConfigurations(ConfigurationsRequest request) {
- try {
- String url = addressManager.address()
- + "/"
- + DEFAULT_KIE_API_VERSION
- + "/"
- + kieConfiguration.getProject()
- + "/kie/kv?"
- + request.getLabelsQuery()
- + "&revision="
- + request.getRevision()
- + "&withExact="
- + request.isWithExact();
+ String url = addressManager.address()
+ + "/"
+ + DEFAULT_KIE_API_VERSION
+ + "/"
+ + kieConfiguration.getProject()
+ + "/kie/kv?"
+ + request.getLabelsQuery()
+ + "&revision="
+ + request.getRevision()
+ + "&withExact="
+ + request.isWithExact();
+ try {
if (kieConfiguration.isEnableLongPolling()) {
url += "&wait=" + kieConfiguration.getPollingWaitInSeconds() + "s";
}
@@ -106,7 +106,7 @@ public class KieClient implements KieConfigOperation {
"read response failed. status:" + httpResponse.getStatusCode() + "; message:" +
httpResponse.getMessage() + "; content:" + httpResponse.getContent());
} catch (Exception e) {
- addressManager.nextAddress();
+ LOGGER.error("query configuration from {} failed, message={}", url, e.getMessage());
throw new OperationException("read response failed. ", e);
}
}
diff --git a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/model/KieAddressManager.java b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/model/KieAddressManager.java
index de21237..dde884f 100644
--- a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/model/KieAddressManager.java
+++ b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/model/KieAddressManager.java
@@ -19,31 +19,23 @@ package org.apache.servicecomb.config.kie.client.model;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
public class KieAddressManager {
private final List<String> addresses;
- private int index;
+ private int index = 0;
public KieAddressManager(List<String> addresses) {
this.addresses = new ArrayList<>(addresses.size());
- addresses.forEach((address -> this.addresses.add(address)));
- this.index = new Random().nextInt(addresses.size());
+ this.addresses.addAll(addresses);
}
-
- public String nextAddress() {
+
+ public String address() {
synchronized (this) {
this.index++;
if (this.index >= addresses.size()) {
this.index = 0;
}
- }
- return address();
- }
-
- public String address() {
- synchronized (this) {
return addresses.get(index);
}
}
diff --git a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/AddressManager.java b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/AddressManager.java
index 107af8d..df3e96c 100644
--- a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/AddressManager.java
+++ b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/AddressManager.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.service.center.client;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
import org.apache.servicecomb.http.client.common.HttpUtils;
@@ -28,13 +27,12 @@ public class AddressManager {
private final List<String> addresses;
- private int index;
+ private int index = 0;
public AddressManager(String projectName, List<String> addresses) {
this.projectName = projectName;
this.addresses = new ArrayList<>(addresses.size());
- addresses.forEach((address -> this.addresses.add(address)));
- this.index = new Random().nextInt(addresses.size());
+ this.addresses.addAll(addresses);
}
private String formatAddress(String address) {
@@ -45,21 +43,16 @@ public class AddressManager {
}
}
- public void changeAddress() {
- synchronized (this) {
- this.index++;
- if (this.index >= addresses.size()) {
- this.index = 0;
- }
- }
- }
-
public boolean sslEnabled() {
return address().startsWith("https://");
}
public String address() {
synchronized (this) {
+ index++;
+ if (index >= addresses.size()) {
+ index = 0;
+ }
return addresses.get(index);
}
}
diff --git a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
index 303dfda..3b9a48b 100755
--- a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
+++ b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
@@ -80,7 +80,6 @@ public class ServiceCenterRawClient {
try {
return httpTransport.doRequest(httpRequest);
} catch (IOException e) {
- addressManager.changeAddress();
String retryAddress = addressManager.formatUrl(url, absoluteUrl);
LOGGER.warn("send request to {} failed and retry to {} once. ", address,
retryAddress, e);
@@ -88,7 +87,6 @@ public class ServiceCenterRawClient {
try {
return httpTransport.doRequest(httpRequest);
} catch (IOException ioException) {
- addressManager.changeAddress();
LOGGER.warn("retry to {} failed again. ", retryAddress, e);
throw ioException;
}
diff --git a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterWatch.java b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterWatch.java
index e09af10..d8faafa 100644
--- a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterWatch.java
+++ b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterWatch.java
@@ -51,15 +51,15 @@ public class ServiceCenterWatch implements WebSocketListener {
private static final long SLEEP_MAX = 10 * 60 * 10000;
- private AddressManager addressManager;
+ private final AddressManager addressManager;
- private SSLProperties sslProperties;
+ private final SSLProperties sslProperties;
- private RequestAuthHeaderProvider requestAuthHeaderProvider;
+ private final RequestAuthHeaderProvider requestAuthHeaderProvider;
- private String tenantName;
+ private final String tenantName;
- private Map<String, String> extraGlobalHeaders;
+ private final Map<String, String> extraGlobalHeaders;
private WebSocketTransport webSocketTransport;
@@ -69,11 +69,13 @@ public class ServiceCenterWatch implements WebSocketListener {
private int continuousError = 0;
- private AtomicBoolean reconnecting = new AtomicBoolean(false);
+ private final AtomicBoolean reconnecting = new AtomicBoolean(false);
- private EventBus eventBus;
+ private final EventBus eventBus;
- private ExecutorService connector = Executors.newFixedThreadPool(1, (r) -> new
+ private String currentServerUri;
+
+ private final ExecutorService connector = Executors.newFixedThreadPool(1, (r) -> new
Thread(r, "web-socket-connector"));
public ServiceCenterWatch(AddressManager addressManager,
@@ -106,8 +108,9 @@ public class ServiceCenterWatch implements WebSocketListener {
headers.put("x-domain-name", this.tenantName);
headers.putAll(this.extraGlobalHeaders);
headers.putAll(this.requestAuthHeaderProvider.loadAuthHeader(null));
- LOGGER.info("start watch to address {}", addressManager.address());
- webSocketTransport = new WebSocketTransport(convertAddress(), sslProperties,
+ currentServerUri = convertAddress();
+ LOGGER.info("start watch to address {}", currentServerUri);
+ webSocketTransport = new WebSocketTransport(currentServerUri, sslProperties,
headers, this);
webSocketTransport.connectBlocking();
} catch (Exception e) {
@@ -144,7 +147,6 @@ public class ServiceCenterWatch implements WebSocketListener {
if (webSocketTransport != null) {
webSocketTransport.close();
}
- addressManager.changeAddress();
startWatch();
}
@@ -178,7 +180,7 @@ public class ServiceCenterWatch implements WebSocketListener {
@Override
public void onOpen(ServerHandshake serverHandshake) {
- LOGGER.info("web socket connected to server {}, status={}, message={}", addressManager.address(),
+ LOGGER.info("web socket connected to server {}, status={}, message={}", currentServerUri,
serverHandshake.getHttpStatus(),
serverHandshake.getHttpStatusMessage());
continuousError = 0;
diff --git a/demo/demo-cse-v1/pom.xml b/demo/demo-cse-v1/pom.xml
index aff6149..3e60cdb 100644
--- a/demo/demo-cse-v1/pom.xml
+++ b/demo/demo-cse-v1/pom.xml
@@ -35,6 +35,10 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>dashboard</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>registry-service-center</artifactId>
</dependency>
<dependency>
diff --git a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/AddressManager.java b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/AddressManager.java
index 27c1188..800206c 100644
--- a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/AddressManager.java
+++ b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/AddressManager.java
@@ -18,135 +18,64 @@
package org.apache.servicecomb.huaweicloud.dashboard.monitor;
-import com.google.common.eventbus.Subscribe;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.servicecomb.deployment.Deployment;
import org.apache.servicecomb.deployment.SystemBootstrapInfo;
import org.apache.servicecomb.foundation.common.event.EventManager;
-import org.apache.servicecomb.deployment.Deployment;
import org.apache.servicecomb.huaweicloud.dashboard.monitor.data.MonitorConstant;
-import org.apache.servicecomb.huaweicloud.dashboard.monitor.event.MonitorFailEvent;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
public class AddressManager {
- private static final String MONITR_SERVICE_NAME = "CseMonitoring";
-
- private static final String MONITR_APPLICATION = "default";
-
- private static final String MONITR_VERSION = "latest";
-
- static class State {
- static final long MAX_TIME = 300000;
-
- static final int MIN_FAILED = 3;
-
- private long failedCount = 0;
-
- private long time;
-
- public long getTime() {
- return time;
- }
-
- public void setTime(long time) {
- this.time = time;
- }
-
- boolean isIsolated() {
- if (failedCount < MIN_FAILED) {
- return false;
- }
- if ((System.currentTimeMillis() - time) > MAX_TIME) {
- time = System.currentTimeMillis();
- return false;
- }
- return true;
- }
+ private static final String MONITOR_SERVICE_NAME = "CseMonitoring";
- void setIsolateStatus(boolean isFailed) {
- if (isFailed) {
- if (failedCount == 0) {
- time = System.currentTimeMillis();
- }
- failedCount++;
- } else {
- failedCount = 0;
- }
- }
- }
+ private static final String MONITOR_APPLICATION = "default";
- private Map<String, State> addresses = new LinkedHashMap<>();
+ private static final String MONITOR_VERSION = "latest";
- private String currentServer;
+ private final List<String> addresses = new ArrayList<>();
- private State discoveryState = new State();
+ private int index = 0;
AddressManager() {
updateAddresses();
+ updateServersFromSC();
EventManager.register(this);
}
- public Map<String, State> getAddresses() {
- return addresses;
- }
-
- public void updateAddresses() {
+ private void updateAddresses() {
SystemBootstrapInfo info = Deployment.getSystemBootStrapInfo(
MonitorConstant.SYSTEM_KEY_DASHBOARD_SERVICE);
- if (addresses.size() > 0) {
- addresses.clear();
- }
if (info != null && info.getAccessURL() != null) {
- info.getAccessURL().forEach(url -> {
- addresses.put(url, new State());
- });
+ addresses.addAll(info.getAccessURL());
}
}
- @Subscribe
- public void MonitorFailEvent(MonitorFailEvent event) {
- updateAddresses();
- }
-
String nextServer() {
- if (currentServer == null && addresses.size() > 0) {
- currentServer = addresses.keySet().iterator().next();
- }
-
- if (currentServer == null || addresses.get(currentServer).isIsolated()) {
- currentServer = null;
- if (!discoveryState.isIsolated()) {
- updateServersFromSC();
- discoveryState.setIsolateStatus(true);
- }
- for (Map.Entry<String, State> entry : addresses.entrySet()) {
- if (!entry.getValue().isIsolated()) {
- currentServer = entry.getKey();
- break;
- }
+ synchronized (this) {
+ this.index++;
+ if (this.index >= addresses.size()) {
+ this.index = 0;
}
+ return addresses.get(index);
}
- return currentServer;
}
private void updateServersFromSC() {
- List<MicroserviceInstance> servers = RegistryUtils.findServiceInstance(MONITR_APPLICATION,
- MONITR_SERVICE_NAME,
- MONITR_VERSION);
+ List<MicroserviceInstance> servers = RegistryUtils.findServiceInstance(MONITOR_APPLICATION,
+ MONITOR_SERVICE_NAME,
+ MONITOR_VERSION);
if (servers != null) {
for (MicroserviceInstance server : servers) {
for (String endpoint : server.getEndpoints()) {
- addresses.computeIfAbsent(endpoint, key -> new State());
+ if (!addresses.contains(endpoint)) {
+ addresses.add(endpoint);
+ }
}
}
}
}
-
- void updateStates(String server, boolean failed) {
- addresses.get(server).setIsolateStatus(failed);
- }
}
diff --git a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/DefaultMonitorDataPublisher.java b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/DefaultMonitorDataPublisher.java
index a9d5535..e130374 100644
--- a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/DefaultMonitorDataPublisher.java
+++ b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/DefaultMonitorDataPublisher.java
@@ -17,14 +17,9 @@
package org.apache.servicecomb.huaweicloud.dashboard.monitor;
-import io.netty.handler.codec.http.HttpResponseStatus;
-import io.vertx.core.DeploymentOptions;
-import io.vertx.core.Vertx;
-import io.vertx.core.VertxOptions;
-import io.vertx.core.http.HttpClientOptions;
-import io.vertx.core.http.HttpClientRequest;
-import io.vertx.core.json.Json;
-import io.vertx.core.net.ProxyOptions;
+import java.net.UnknownHostException;
+import java.util.HashMap;
+
import org.apache.commons.io.IOUtils;
import org.apache.servicecomb.foundation.auth.SignRequest;
import org.apache.servicecomb.foundation.common.event.EventManager;
@@ -49,8 +44,14 @@ import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.net.UnknownHostException;
-import java.util.HashMap;
+import io.netty.handler.codec.http.HttpResponseStatus;
+import io.vertx.core.DeploymentOptions;
+import io.vertx.core.Vertx;
+import io.vertx.core.VertxOptions;
+import io.vertx.core.http.HttpClientOptions;
+import io.vertx.core.http.HttpClientRequest;
+import io.vertx.core.json.Json;
+import io.vertx.core.net.ProxyOptions;
public class DefaultMonitorDataPublisher implements MonitorDataPublisher {
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultMonitorDataPublisher.class);
@@ -90,7 +91,7 @@ public class DefaultMonitorDataPublisher implements MonitorDataPublisher {
doSend(endpoint, jasonData, url, host, 0);
}
- private void doSend(String endponit, String jsonData, String url, IpPort host, int times) {
+ private void doSend(String endpoint, String jsonData, String url, IpPort host, int times) {
clientMgr.findThreadBindClientPool().runOnContext(client -> {
@SuppressWarnings("deprecation")
HttpClientRequest request = client.post(host.getPort(),
@@ -101,7 +102,7 @@ public class DefaultMonitorDataPublisher implements MonitorDataPublisher {
if (rsp.statusCode() != HttpResponseStatus.OK.code()) {
if (times < MonitorConstant.MAX_RETRY_TIMES
&& rsp.statusCode() == HttpResponseStatus.BAD_GATEWAY.code()) {
- doSend(endponit, jsonData, url, host, times + 1);
+ doSend(endpoint, jsonData, url, host, times + 1);
return;
}
rsp.bodyHandler(buffer -> {
@@ -111,25 +112,22 @@ public class DefaultMonitorDataPublisher implements MonitorDataPublisher {
LOGGER.warn("message: {}", buffer);
});
EventManager.post(new MonitorFailEvent("send monitor data fail."));
- addressManager.updateStates(endponit, false);
} else {
EventManager.post(new MonitorSuccEvent());
- addressManager.updateStates(endponit, false);
}
});
request.setTimeout(MonitorConstant.getInterval() / MonitorConstant.MAX_RETRY_TIMES);
request.exceptionHandler(e -> {
EventManager.post(new MonitorFailEvent("send monitor data fail."));
- LOGGER.warn("Send monitor data to {} failed , {}", endponit, e.getMessage());
+ LOGGER.warn("Send monitor data to {} failed , {}", endpoint, e.getMessage());
if (e instanceof UnknownHostException) {
LOGGER.error("DNS resolve failed!", e);
}
- addressManager.updateStates(endponit, true);
});
try {
SignRequest signReq = SignUtil.createSignRequest(request.method().toString(),
- endponit + url,
+ endpoint + url,
new HashMap<>(),
IOUtils.toInputStream(jsonData, "UTF-8"));
SignUtil.getAuthHeaderProviders().forEach(authHeaderProvider -> {
@@ -181,8 +179,4 @@ public class DefaultMonitorDataPublisher implements MonitorDataPublisher {
}
return httpClientOptions;
}
-
- public AddressManager getAddressManager() {
- return addressManager;
- }
}