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 2020/12/26 08:42:53 UTC
[servicecomb-java-chassis] branch 1.3.x updated:
[SCB-2167]isolation recovery should be immediatly after success (#2172)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/1.3.x by this push:
new 5959cb4 [SCB-2167]isolation recovery should be immediatly after success (#2172)
5959cb4 is described below
commit 5959cb4ac1d8d148160275fa6fa1ff1792fb23b0
Author: bao liu <bi...@qq.com>
AuthorDate: Sat Dec 26 16:42:43 2020 +0800
[SCB-2167]isolation recovery should be immediatly after success (#2172)
---
.../core/filter/EndpointDiscoveryFilter.java | 5 +-
.../core/filter/TestEndpointDiscoveryFilter.java | 4 +-
.../servicecomb/loadbalance/Configuration.java | 8 +++
.../loadbalance/ServiceCombLoadBalancerStats.java | 35 ++++-------
.../servicecomb/loadbalance/ServiceCombServer.java | 13 +++-
.../loadbalance/ServiceCombServerStats.java | 70 ++++++++++++++--------
.../loadbalance/event/IsolationServerEvent.java | 2 +-
.../filter/IsolationDiscoveryFilter.java | 5 +-
.../loadbalance/filter/ServerDiscoveryFilter.java | 9 ++-
.../loadbalance/TestLoadBalanceCreator.java | 16 ++---
.../loadbalance/TestLoadBalanceHandler2.java | 16 ++---
.../loadbalance/TestLoadbalanceHandler.java | 6 +-
.../TestServiceCombLoadBalancerStats.java | 10 ++--
.../loadbalance/TestServiceCombServer.java | 6 +-
.../loadbalance/TestServiceCombServerStats.java | 10 ++--
.../loadbalance/TestSessionSticknessRule.java | 8 +--
.../filter/IsolationDiscoveryFilterTest.java | 10 ++--
.../filter/TestServerDiscoveryFilter.java | 14 ++++-
.../ScbRibbonEndpointDiscoveryFilter.java | 2 +-
.../ScbRibbonEndpointDiscoveryFilter.java | 3 +-
.../discovery/AbstractEndpointDiscoveryFilter.java | 5 +-
.../TestAbstractTransportDiscoveryFilter.java | 3 +-
22 files changed, 153 insertions(+), 107 deletions(-)
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
index d05c59d..31724eb 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
@@ -33,7 +33,7 @@ public class EndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
@Override
public int getOrder() {
- return (int) Short.MAX_VALUE;
+ return Short.MAX_VALUE;
}
@Override
@@ -43,7 +43,8 @@ public class EndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
}
@Override
- protected Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance) {
+ protected Object createEndpoint(DiscoveryContext context, String transportName, String endpoint,
+ MicroserviceInstance instance) {
Transport transport = CseContext.getInstance().getTransportManager().findTransport(transportName);
if (transport == null) {
LOGGER.info("not deployed transport {}, ignore {}.", transportName, endpoint);
diff --git a/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java b/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
index 2c443be..81ea097 100644
--- a/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
+++ b/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
@@ -81,7 +81,7 @@ public class TestEndpointDiscoveryFilter {
}
};
- Assert.assertNull(filter.createEndpoint(Const.RESTFUL, "", null));
+ Assert.assertNull(filter.createEndpoint(null, Const.RESTFUL, "", null));
}
@Test
@@ -98,7 +98,7 @@ public class TestEndpointDiscoveryFilter {
}
};
- Endpoint ep = (Endpoint) filter.createEndpoint(Const.RESTFUL, endpoint, instance);
+ Endpoint ep = (Endpoint) filter.createEndpoint(null, Const.RESTFUL, endpoint, instance);
Assert.assertSame(transport, ep.getTransport());
Assert.assertSame(address, ep.getAddress());
Assert.assertSame(instance, ep.getMicroserviceInstance());
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
index 905d09d..f7b57d4 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
@@ -63,6 +63,7 @@ public final class Configuration {
public static final String FILTER_ERROR_PERCENTAGE = "errorThresholdPercentage";
public static final String FILTER_ENABLE_REQUEST = "enableRequestThreshold";
+ public static final String FILTER_RECOVER_IMMEDIATELY_WHEN_SUCCESS = "recoverImmediatelyWhenSuccess";
public static final String FILTER_SINGLE_TEST = "singleTestTime";
@@ -241,6 +242,13 @@ public final class Configuration {
}
}
+ public boolean isRecoverImmediatelyWhenSuccess(String microservice) {
+ String p = getStringProperty("true",
+ PROP_ROOT + microservice + "." + FILTER_ISOLATION + FILTER_RECOVER_IMMEDIATELY_WHEN_SUCCESS,
+ PROP_ROOT + FILTER_ISOLATION + FILTER_RECOVER_IMMEDIATELY_WHEN_SUCCESS);
+ return Boolean.parseBoolean(p);
+ }
+
public Map<String, String> getFlowsplitFilterOptions(String microservice) {
String keyPrefix = String.format(TRANSACTIONCONTROL_OPTIONS_PREFIX_PATTERN, microservice);
return ConfigurePropertyUtils.getPropertiesWithPrefix(keyPrefix);
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
index b724cf9..95dc9b0 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
@@ -108,23 +108,14 @@ public class ServiceCombLoadBalancerStats {
return serviceCombServers.get(instance.getInstanceId());
}
- public ServiceCombServer getServiceCombServerOld(MicroserviceInstance instance) {
- for (ServiceCombServer server : serverStatsCache.asMap().keySet()) {
- if (server.getInstance().equals(instance)) {
- return server;
- }
- }
- return null;
- }
-
@VisibleForTesting
void setServerExpireInSeconds(int sec) {
this.serverExpireInSeconds = sec;
}
@VisibleForTesting
- void setTimerIntervalInMillis(int milis) {
- this.timerIntervalInMillis = milis;
+ void setTimerIntervalInMillis(int millis) {
+ this.timerIntervalInMillis = millis;
}
@VisibleForTesting
@@ -141,23 +132,23 @@ public class ServiceCombLoadBalancerStats {
serverStatsCache.cleanUp();
}
+ pingView.clear();
+
serverStatsCache =
CacheBuilder.newBuilder()
.expireAfterAccess(serverExpireInSeconds, TimeUnit.SECONDS)
- .removalListener(new RemovalListener<ServiceCombServer, ServiceCombServerStats>() {
- @Override
- public void onRemoval(RemovalNotification<ServiceCombServer, ServiceCombServerStats> notification) {
- ServiceCombServer server = notification.getKey();
- LOGGER.info("stats of instance {} removed. host is {}",
- server.getInstance().getInstanceId(), server.getHost());
- pingView.remove(notification.getKey());
- serviceCombServers.remove(notification.getKey());
- }
- })
+ .removalListener(
+ (RemovalListener<ServiceCombServer, ServiceCombServerStats>) notification -> {
+ ServiceCombServer server = notification.getKey();
+ LOGGER.info("stats of instance {} removed, host is {}",
+ server.getInstance().getInstanceId(), server.getHost());
+ pingView.remove(notification.getKey());
+ serviceCombServers.remove(notification.getKey());
+ })
.build(
new CacheLoader<ServiceCombServer, ServiceCombServerStats>() {
public ServiceCombServerStats load(ServiceCombServer server) {
- ServiceCombServerStats stats = new ServiceCombServerStats();
+ ServiceCombServerStats stats = new ServiceCombServerStats(server.getMicroserviceName());
pingView.put(server, stats);
serviceCombServers.put(server.getInstance().getInstanceId(), server);
return stats;
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
index e780b8b..b31e759 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
@@ -39,11 +39,14 @@ public class ServiceCombServer extends Server {
// 所属服务实例
private final MicroserviceInstance instance;
+ private final String microserviceName;
+
@VisibleForTesting
- ServiceCombServer(Endpoint endpoint, MicroserviceInstance instance) {
+ ServiceCombServer(String microserviceName, Endpoint endpoint, MicroserviceInstance instance) {
super(null);
this.endpoint = endpoint;
this.instance = instance;
+ this.microserviceName = microserviceName;
// Different types of Robin Component Rule have different usages for server status and list.
// e.g. RoundRobinRule using getAllServers & alive & readyToServe
@@ -54,9 +57,9 @@ public class ServiceCombServer extends Server {
this.setReadyToServe(true);
}
- public ServiceCombServer(Transport transport, CacheEndpoint cacheEndpoint) {
+ public ServiceCombServer(String microserviceName, Transport transport, CacheEndpoint cacheEndpoint) {
super(null);
-
+ this.microserviceName = microserviceName;
endpoint = new Endpoint(transport, cacheEndpoint.getEndpoint(), cacheEndpoint.getInstance());
instance = cacheEndpoint.getInstance();
@@ -75,6 +78,10 @@ public class ServiceCombServer extends Server {
}
}
+ public String getMicroserviceName() {
+ return this.microserviceName;
+ }
+
public Endpoint getEndpoint() {
return endpoint;
}
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServerStats.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServerStats.java
index 5ad7624..d867da3 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServerStats.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServerStats.java
@@ -45,31 +45,35 @@ public class ServiceCombServerStats {
*/
static AtomicReference<TryingIsolatedServerMarker> globalAllowIsolatedServerTryingFlag = new AtomicReference<>();
- private long lastWindow = System.currentTimeMillis();
-
Clock clock;
- private AtomicLong continuousFailureCount = new AtomicLong(0);
+ private long lastWindow;
+
+ private AtomicLong continuousFailureCount;
+
+ private long lastVisitTime;
- private long lastVisitTime = System.currentTimeMillis();
+ private long lastActiveTime;
- private long lastActiveTime = System.currentTimeMillis();
+ private long isolatedTime;
- private AtomicLong totalRequests = new AtomicLong(0L);
+ private AtomicLong totalRequests;
- private AtomicLong successRequests = new AtomicLong(0L);
+ private AtomicLong successRequests;
- private AtomicLong failedRequests = new AtomicLong(0L);
+ private AtomicLong failedRequests;
private boolean isolated = false;
- public ServiceCombServerStats() {
- this.clock = TimeUtils.getSystemDefaultZoneClock();
- init();
+ private String microserviceName;
+
+ public ServiceCombServerStats(String microserviceName) {
+ this(microserviceName, TimeUtils.getSystemDefaultZoneClock());
}
- public ServiceCombServerStats(Clock clock) {
+ public ServiceCombServerStats(String microserviceName, Clock clock) {
this.clock = clock;
+ this.microserviceName = microserviceName;
init();
}
@@ -117,23 +121,33 @@ public class ServiceCombServerStats {
public void markIsolated(boolean isolated) {
this.isolated = isolated;
+ this.isolatedTime = System.currentTimeMillis();
}
public void markSuccess() {
- long time = System.currentTimeMillis();
+ long time = clock.millis();
ensureWindow(time);
- lastVisitTime = time;
- lastActiveTime = time;
+
+ if (isolated) {
+ if (Configuration.INSTANCE.isRecoverImmediatelyWhenSuccess(microserviceName)
+ && time - this.isolatedTime > Configuration.INSTANCE
+ .getMinIsolationTime(microserviceName)) {
+ resetStats();
+ LOGGER.info("trying server invocation success, and reset stats.");
+ } else {
+ LOGGER.info("trying server invocation success!");
+ }
+ }
+
totalRequests.incrementAndGet();
successRequests.incrementAndGet();
continuousFailureCount.set(0);
- if (isolated) {
- LOGGER.info("trying server invocation success!");
- }
+ lastVisitTime = time;
+ lastActiveTime = time;
}
public void markFailure() {
- long time = System.currentTimeMillis();
+ long time = clock.millis();
ensureWindow(time);
lastVisitTime = time;
@@ -150,10 +164,7 @@ public class ServiceCombServerStats {
synchronized (lock) {
if (time - lastWindow > TIME_WINDOW_IN_MILLISECONDS) {
if (!isolated) {
- continuousFailureCount.set(0);
- totalRequests.set(0);
- successRequests.set(0);
- failedRequests.set(0);
+ resetStats();
}
lastWindow = time;
}
@@ -161,15 +172,26 @@ public class ServiceCombServerStats {
}
}
+ private void resetStats() {
+ continuousFailureCount.set(0);
+ totalRequests.set(0);
+ successRequests.set(0);
+ failedRequests.set(0);
+ }
+
public long getLastVisitTime() {
return lastVisitTime;
}
+ public long getIsolatedTime() {
+ return isolatedTime;
+ }
+
public long getLastActiveTime() {
return lastActiveTime;
}
- public long getCountinuousFailureCount() {
+ public long getContinuousFailureCount() {
return continuousFailureCount.get();
}
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
index a48e6d4..45c7ba0 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
@@ -57,7 +57,7 @@ public class IsolationServerEvent extends AlarmEvent {
this.microserviceName = invocation.getMicroserviceName();
this.endpoint = endpoint;
this.currentTotalRequest = serverStats.getTotalRequests();
- this.currentCountinuousFailureCount = serverStats.getCountinuousFailureCount();
+ this.currentCountinuousFailureCount = serverStats.getContinuousFailureCount();
this.currentErrorPercentage = serverStats.getFailedRate();
this.minIsolationTime = settings.minIsolationTime;
this.enableRequestThreshold = settings.enableRequestThreshold;
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
index d6feeac..b81d2e2 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
@@ -147,6 +147,7 @@ public class IsolationDiscoveryFilter implements DiscoveryFilter {
return ServiceCombServerStats.applyForTryingChance(invocation);
}
if (!serverStats.isIsolated()) {
+ // checkThresholdAllowed is not concurrent control, may print several logs/events in current access.
serverStats.markIsolated(true);
eventBus.post(
new IsolationServerEvent(invocation, instance, serverStats,
@@ -159,7 +160,7 @@ public class IsolationDiscoveryFilter implements DiscoveryFilter {
if (serverStats.isIsolated()) {
// [2] so that we add a feature to isolate for at least a minimal time, and we can avoid
// high volume of concurrent requests with a percentage of error(e.g. 50%) scenario with no isolation
- if ((System.currentTimeMillis() - serverStats.getLastVisitTime()) <= settings.minIsolationTime) {
+ if ((System.currentTimeMillis() - serverStats.getIsolatedTime()) <= settings.minIsolationTime) {
return false;
}
serverStats.markIsolated(false);
@@ -178,7 +179,7 @@ public class IsolationDiscoveryFilter implements DiscoveryFilter {
if (settings.continuousFailureThreshold > 0) {
// continuousFailureThreshold has higher priority to decide the result
- if (serverStats.getCountinuousFailureCount() >= settings.continuousFailureThreshold) {
+ if (serverStats.getContinuousFailureCount() >= settings.continuousFailureThreshold) {
return false;
}
}
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
index 3f95915..b1abe2e 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
@@ -18,11 +18,13 @@
package org.apache.servicecomb.loadbalance.filter;
import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.Transport;
import org.apache.servicecomb.core.filter.EndpointDiscoveryFilter;
import org.apache.servicecomb.loadbalance.ServiceCombServer;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,13 +32,14 @@ public class ServerDiscoveryFilter extends EndpointDiscoveryFilter {
private static final Logger LOGGER = LoggerFactory.getLogger(ServerDiscoveryFilter.class);
@Override
- protected Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance) {
+ protected Object createEndpoint(DiscoveryContext context, String transportName, String endpoint,
+ MicroserviceInstance instance) {
Transport transport = CseContext.getInstance().getTransportManager().findTransport(transportName);
if (transport == null) {
LOGGER.info("not deployed transport {}, ignore {}.", transportName, endpoint);
return null;
}
-
- return new ServiceCombServer(transport, new CacheEndpoint(endpoint, instance));
+ Invocation invocation = context.getInputParameters();
+ return new ServiceCombServer(invocation.getMicroserviceName(), transport, new CacheEndpoint(endpoint, instance));
}
}
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
index e0019b7..b192923 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
@@ -44,12 +44,12 @@ public class TestLoadBalanceCreator {
Endpoint host1 = new Endpoint(transport, "host1");
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("instance1");
- ServiceCombServer server = new ServiceCombServer(host1, instance1);
+ ServiceCombServer server = new ServiceCombServer(null, host1, instance1);
Endpoint host2 = new Endpoint(transport, "host2");
MicroserviceInstance instance2 = new MicroserviceInstance();
instance2.setInstanceId("instance2");
- ServiceCombServer server2 = new ServiceCombServer(host2, instance2);
+ ServiceCombServer server2 = new ServiceCombServer(null, host2, instance2);
servers.add(server);
servers.add(server2);
@@ -98,12 +98,12 @@ public class TestLoadBalanceCreator {
Endpoint host1 = new Endpoint(transport, "host1");
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("instance1");
- ServiceCombServer server = new ServiceCombServer(host1, instance1);
+ ServiceCombServer server = new ServiceCombServer(null, host1, instance1);
Endpoint host2 = new Endpoint(transport, "host2");
MicroserviceInstance instance2 = new MicroserviceInstance();
instance2.setInstanceId("instance2");
- ServiceCombServer server2 = new ServiceCombServer(host2, instance2);
+ ServiceCombServer server2 = new ServiceCombServer(null, host2, instance2);
servers.add(server);
servers.add(server2);
@@ -150,8 +150,8 @@ public class TestLoadBalanceCreator {
instance1.setInstanceId("ii01");
MicroserviceInstance instance2 = new MicroserviceInstance();
instance2.setInstanceId("ii02");
- ServiceCombServer server = new ServiceCombServer(endpoint1, instance1);
- ServiceCombServer server2 = new ServiceCombServer(endpoint2, instance2);
+ ServiceCombServer server = new ServiceCombServer(null, endpoint1, instance1);
+ ServiceCombServer server2 = new ServiceCombServer(null, endpoint2, instance2);
new Expectations() {
{
@@ -203,12 +203,12 @@ public class TestLoadBalanceCreator {
List<ServiceCombServer> servers = new ArrayList<>();
Endpoint host1 = new Endpoint(transport, "host1");
MicroserviceInstance instance1 = new MicroserviceInstance();
- ServiceCombServer server = new ServiceCombServer(host1, instance1);
+ ServiceCombServer server = new ServiceCombServer(null, host1, instance1);
instance1.setInstanceId("instance1");
Endpoint host2 = new Endpoint(transport, "host2");
MicroserviceInstance instance2 = new MicroserviceInstance();
- ServiceCombServer server2 = new ServiceCombServer(host2, instance2);
+ ServiceCombServer server2 = new ServiceCombServer(null, host2, instance2);
instance2.setInstanceId("instance2");
servers.add(server);
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
index 6d71b47..fd3effe 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
@@ -849,7 +849,7 @@ public class TestLoadBalanceHandler2 {
(inv, aysnc) -> {
Assert.assertEquals("rest://127.0.0.1:8080", inv.getEndpoint().getEndpoint());
Assert.assertTrue(serviceCombServerStats.isIsolated());
- Assert.assertEquals(5, serviceCombServerStats.getCountinuousFailureCount());
+ Assert.assertEquals(5, serviceCombServerStats.getContinuousFailureCount());
Assert.assertFalse(ServiceCombServerStats.isolatedServerCanTry());
aysnc.success("OK");
});
@@ -863,7 +863,7 @@ public class TestLoadBalanceHandler2 {
}
Assert.assertEquals("rest://127.0.0.1:8080", invocation.getEndpoint().getEndpoint());
Assert.assertTrue(serviceCombServerStats.isIsolated());
- Assert.assertEquals(0, serviceCombServerStats.getCountinuousFailureCount());
+ Assert.assertEquals(0, serviceCombServerStats.getContinuousFailureCount());
Assert.assertTrue(ServiceCombServerStats.isolatedServerCanTry());
}
@@ -894,16 +894,16 @@ public class TestLoadBalanceHandler2 {
(inv, aysnc) -> {
Assert.assertFalse(stats0.isIsolated());
Assert.assertTrue(stats1.isIsolated());
- Assert.assertEquals(5, stats1.getCountinuousFailureCount());
+ Assert.assertEquals(5, stats1.getContinuousFailureCount());
Assert.assertFalse(ServiceCombServerStats.isolatedServerCanTry());
if (counter.value == 0) {
Assert.assertEquals("rest://127.0.0.1:8080", inv.getEndpoint().getEndpoint());
- Assert.assertEquals(0, stats0.getCountinuousFailureCount());
+ Assert.assertEquals(0, stats0.getContinuousFailureCount());
counter.value++;
aysnc.producerFail(new InvocationException(503, "RETRY", "retry to next instance"));
} else if (counter.value == 1) {
Assert.assertEquals("rest://127.0.0.1:8081", inv.getEndpoint().getEndpoint());
- Assert.assertEquals(1, stats0.getCountinuousFailureCount());
+ Assert.assertEquals(1, stats0.getContinuousFailureCount());
counter.value++;
aysnc.success("OK");
} else {
@@ -920,9 +920,9 @@ public class TestLoadBalanceHandler2 {
}
Assert.assertEquals("rest://127.0.0.1:8081", invocation.getEndpoint().getEndpoint());
Assert.assertFalse(stats0.isIsolated());
- Assert.assertEquals(1, stats0.getCountinuousFailureCount());
+ Assert.assertEquals(1, stats0.getContinuousFailureCount());
Assert.assertTrue(stats1.isIsolated());
- Assert.assertEquals(0, stats1.getCountinuousFailureCount());
+ Assert.assertEquals(0, stats1.getContinuousFailureCount());
Assert.assertTrue(ServiceCombServerStats.isolatedServerCanTry());
}
@@ -947,7 +947,7 @@ public class TestLoadBalanceHandler2 {
private ServiceCombServer createMockedServer(String microserviceInstanceId, String endpoint) {
MicroserviceInstance microserviceInstance = new MicroserviceInstance();
microserviceInstance.setInstanceId(microserviceInstanceId);
- return new ServiceCombServer(
+ return new ServiceCombServer(null,
new Endpoint(Mockito.mock(Transport.class), endpoint),
microserviceInstance);
}
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
index c009f64..1b1f159 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
@@ -174,7 +174,7 @@ public class TestLoadbalanceHandler {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
CacheEndpoint cacheEndpoint = new CacheEndpoint("rest://localhost:8080", instance1);
- ServiceCombServer server = new ServiceCombServer(restTransport, cacheEndpoint);
+ ServiceCombServer server = new ServiceCombServer(null, restTransport, cacheEndpoint);
LoadBalancerStats stats = new LoadBalancerStats("test");
new Expectations(loadBalancer) {
{
@@ -203,7 +203,7 @@ public class TestLoadbalanceHandler {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
CacheEndpoint cacheEndpoint = new CacheEndpoint("rest://localhost:8080", instance1);
- ServiceCombServer server = new ServiceCombServer(restTransport, cacheEndpoint);
+ ServiceCombServer server = new ServiceCombServer(null, restTransport, cacheEndpoint);
LoadBalancerStats stats = new LoadBalancerStats("test");
new Expectations(loadBalancer) {
{
@@ -231,7 +231,7 @@ public class TestLoadbalanceHandler {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
CacheEndpoint cacheEndpoint = new CacheEndpoint("rest://localhost:8080", instance1);
- ServiceCombServer server = new ServiceCombServer(restTransport, cacheEndpoint);
+ ServiceCombServer server = new ServiceCombServer(null, restTransport, cacheEndpoint);
LoadBalancerStats stats = new LoadBalancerStats("test");
new Expectations(loadBalancer) {
{
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
index 79fec89..fa495f7 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
@@ -77,7 +77,7 @@ public class TestServiceCombLoadBalancerStats {
serviceCombLoadBalancerStats.setTimerIntervalInMillis(500);
serviceCombLoadBalancerStats.init();
- ServiceCombServer serviceCombServer = new ServiceCombServer(transport,
+ ServiceCombServer serviceCombServer = new ServiceCombServer(null, transport,
new CacheEndpoint("rest://localhost:8080", instance));
serviceCombLoadBalancerStats.markSuccess(serviceCombServer);
ServiceCombServerStats stats = serviceCombLoadBalancerStats.getServiceCombServerStats(serviceCombServer);
@@ -94,16 +94,16 @@ public class TestServiceCombLoadBalancerStats {
long time = System.currentTimeMillis();
MicroserviceInstance instance = new MicroserviceInstance();
instance.setInstanceId("instance1");
- ServiceCombServer serviceCombServer = new ServiceCombServer(transport,
+ ServiceCombServer serviceCombServer = new ServiceCombServer(null, transport,
new CacheEndpoint("rest://localhost:8080", instance));
ServiceCombLoadBalancerStats.INSTANCE.markFailure(serviceCombServer);
ServiceCombLoadBalancerStats.INSTANCE.markFailure(serviceCombServer);
Assert.assertEquals(
- ServiceCombLoadBalancerStats.INSTANCE.getServiceCombServerStats(serviceCombServer).getCountinuousFailureCount(),
+ ServiceCombLoadBalancerStats.INSTANCE.getServiceCombServerStats(serviceCombServer).getContinuousFailureCount(),
2);
ServiceCombLoadBalancerStats.INSTANCE.markSuccess(serviceCombServer);
Assert.assertEquals(
- ServiceCombLoadBalancerStats.INSTANCE.getServiceCombServerStats(serviceCombServer).getCountinuousFailureCount(),
+ ServiceCombLoadBalancerStats.INSTANCE.getServiceCombServerStats(serviceCombServer).getContinuousFailureCount(),
0);
ServiceCombLoadBalancerStats.INSTANCE.markSuccess(serviceCombServer);
Assert
@@ -125,7 +125,7 @@ public class TestServiceCombLoadBalancerStats {
long time = System.currentTimeMillis();
MicroserviceInstance instance = new MicroserviceInstance();
instance.setInstanceId("instance2");
- ServiceCombServer serviceCombServer = new ServiceCombServer(transport,
+ ServiceCombServer serviceCombServer = new ServiceCombServer(null, transport,
new CacheEndpoint("rest://localhost:8080", instance));
CountDownLatch latch = new CountDownLatch(10);
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
index 1b2e599..4ec72b1 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
@@ -41,7 +41,7 @@ public class TestServiceCombServer {
public void setUp() {
MicroserviceInstance instance = new MicroserviceInstance();
instance.setInstanceId("123456");
- cs = new ServiceCombServer(transport, new CacheEndpoint("abcd", instance));
+ cs = new ServiceCombServer(null, transport, new CacheEndpoint("abcd", instance));
}
@Test
@@ -61,12 +61,12 @@ public class TestServiceCombServer {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
- ServiceCombServer other = new ServiceCombServer(transport, new CacheEndpoint("1234", instance1));
+ ServiceCombServer other = new ServiceCombServer(null, transport, new CacheEndpoint("1234", instance1));
Assert.assertFalse(cs.equals(other));
MicroserviceInstance instance2 = new MicroserviceInstance();
instance2.setInstanceId("123456");
- other = new ServiceCombServer(transport, new CacheEndpoint("abcd", instance2));
+ other = new ServiceCombServer(null, transport, new CacheEndpoint("abcd", instance2));
Assert.assertTrue(cs.equals(other));
}
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServerStats.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServerStats.java
index ef1fd61..68db539 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServerStats.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServerStats.java
@@ -46,12 +46,12 @@ public class TestServiceCombServerStats {
@Test
public void testSimpleThread() {
long time = System.currentTimeMillis();
- ServiceCombServerStats stats = new ServiceCombServerStats();
+ ServiceCombServerStats stats = new ServiceCombServerStats(null);
stats.markFailure();
stats.markFailure();
- Assert.assertEquals(stats.getCountinuousFailureCount(), 2);
+ Assert.assertEquals(stats.getContinuousFailureCount(), 2);
stats.markSuccess();
- Assert.assertEquals(stats.getCountinuousFailureCount(), 0);
+ Assert.assertEquals(stats.getContinuousFailureCount(), 0);
stats.markSuccess();
Assert.assertEquals(stats.getTotalRequests(), 4);
Assert.assertEquals(stats.getFailedRate(), 50);
@@ -63,7 +63,7 @@ public class TestServiceCombServerStats {
@Test
public void testMiltiThread() throws Exception {
long time = System.currentTimeMillis();
- ServiceCombServerStats stats = new ServiceCombServerStats();
+ ServiceCombServerStats stats = new ServiceCombServerStats(null);
CountDownLatch latch = new CountDownLatch(10);
for (int i = 0; i < 10; i++) {
new Thread() {
@@ -92,7 +92,7 @@ public class TestServiceCombServerStats {
return 1000;
}
};
- ServiceCombServerStats stats = new ServiceCombServerStats();
+ ServiceCombServerStats stats = new ServiceCombServerStats(null);
Assert.assertEquals(stats.getLastVisitTime(), 1000);
stats.markSuccess();
stats.markFailure();
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
index 228e973..01262b9 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
@@ -50,7 +50,7 @@ public class TestSessionSticknessRule {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
ServiceCombServer mockedServer =
- new ServiceCombServer(transport, new CacheEndpoint("rest:127.0.0.1:8889", instance1));
+ new ServiceCombServer(null, transport, new CacheEndpoint("rest:127.0.0.1:8889", instance1));
Invocation invocation = mock(Invocation.class);
LoadBalancerStats stats = mock(LoadBalancerStats.class);
Mockito.when(mockedLb.getLoadBalancerStats()).thenReturn(stats);
@@ -60,7 +60,6 @@ public class TestSessionSticknessRule {
List<ServiceCombServer> allServers = Arrays.asList(mockedServer);
rule.setLoadBalancer(mockedLb);
-
Server s = rule.choose(allServers, invocation);
Assert.assertEquals(s, mockedServer);
@@ -242,7 +241,7 @@ public class TestSessionSticknessRule {
MicroserviceInstance instance1 = new MicroserviceInstance();
instance1.setInstanceId("1234");
ServiceCombServer mockedServer =
- new ServiceCombServer(transport, new CacheEndpoint("rest:127.0.0.1:8890", instance1));
+ new ServiceCombServer(null, transport, new CacheEndpoint("rest:127.0.0.1:8890", instance1));
mockedServer.setAlive(true);
mockedServer.setReadyToServe(true);
mockedServer.setId("mockedServer");
@@ -250,7 +249,8 @@ public class TestSessionSticknessRule {
LoadBalancer lb = new LoadBalancer(rule, "mockedServer");
when(invocation.getLocalContext(LoadbalanceHandler.CONTEXT_KEY_SERVER_LIST)).thenReturn(allServers);
rule.setLoadBalancer(lb);
- ServiceCombServer server = new ServiceCombServer(transport, new CacheEndpoint("rest:127.0.0.1:8890", instance1));
+ ServiceCombServer server = new ServiceCombServer(null, transport,
+ new CacheEndpoint("rest:127.0.0.1:8890", instance1));
Deencapsulation.setField(rule, "lastServer", server);
new MockUp<SessionStickinessRule>(rule) {
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
index d4c0acd..0e16acb 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
@@ -75,7 +75,8 @@ public class IsolationDiscoveryFilterTest {
String endpoint = "rest://127.0.0.1:" + i;
instance.setEndpoints(Collections.singletonList(endpoint));
data.put(instance.getInstanceId(), instance);
- ServiceCombServer serviceCombServer = new ServiceCombServer(transport, new CacheEndpoint(endpoint, instance));
+ ServiceCombServer serviceCombServer = new ServiceCombServer(null, transport,
+ new CacheEndpoint(endpoint, instance));
ServiceCombLoadBalancerStats.INSTANCE.getServiceCombServerStats(serviceCombServer);
}
discoveryTreeNode.data(data);
@@ -214,7 +215,7 @@ public class IsolationDiscoveryFilterTest {
ServiceCombServerStats serviceCombServerStats = ServiceCombLoadBalancerStats.INSTANCE
.getServiceCombServerStats(server0);
- Deencapsulation.setField(serviceCombServerStats, "lastVisitTime",
+ Deencapsulation.setField(serviceCombServerStats, "isolatedTime",
System.currentTimeMillis() - Configuration.INSTANCE.getMinIsolationTime(invocation.getMicroserviceName()) - 1);
childNode = filter.discovery(discoveryContext, discoveryTreeNode);
childNodeData = childNode.data();
@@ -230,10 +231,11 @@ public class IsolationDiscoveryFilterTest {
ServiceCombLoadBalancerStats.INSTANCE.markSuccess(server0);
ServiceCombServerStats serviceCombServerStats = ServiceCombLoadBalancerStats.INSTANCE
.getServiceCombServerStats(server0);
- Deencapsulation.setField(serviceCombServerStats, "lastVisitTime",
- System.currentTimeMillis() - Configuration.INSTANCE.getMinIsolationTime(invocation.getMicroserviceName()) - 1);
ServiceCombLoadBalancerStats.INSTANCE.markIsolated(server0, true);
+ Deencapsulation.setField(serviceCombServerStats, "isolatedTime",
+ System.currentTimeMillis() - Configuration.INSTANCE.getMinIsolationTime(invocation.getMicroserviceName()) - 1);
+
DiscoveryTreeNode childNode = filter.discovery(discoveryContext, discoveryTreeNode);
Map<String, MicroserviceInstance> childNodeData = childNode.data();
Assert.assertThat(childNodeData.keySet(), Matchers.containsInAnyOrder("i0", "i1", "i2"));
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
index 5dbd6a4..1c6d9e8 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
@@ -19,16 +19,19 @@ package org.apache.servicecomb.loadbalance.filter;
import org.apache.servicecomb.core.Const;
import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.Transport;
import org.apache.servicecomb.core.transport.TransportManager;
import org.apache.servicecomb.loadbalance.ServiceCombServer;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import mockit.Expectations;
+import mockit.Injectable;
import mockit.Mocked;
public class TestServerDiscoveryFilter {
@@ -59,22 +62,27 @@ public class TestServerDiscoveryFilter {
}
};
- ServiceCombServer server = (ServiceCombServer) filter.createEndpoint(Const.RESTFUL, null, null);
+ ServiceCombServer server = (ServiceCombServer) filter.createEndpoint(null, Const.RESTFUL, null, null);
Assert.assertNull(server);
}
@Test
- public void createEndpointNormal() {
+ public void createEndpointNormal(@Injectable DiscoveryContext context, @Injectable Invocation invocation) {
new Expectations() {
{
transportManager.findTransport(anyString);
result = trasport;
+ context.getInputParameters();
+ result = invocation;
+ invocation.getMicroserviceName();
+ result = "test";
}
};
MicroserviceInstance instance = new MicroserviceInstance();
instance.setInstanceId("0000001");
- ServiceCombServer server = (ServiceCombServer) filter.createEndpoint(Const.RESTFUL, "rest://localhost:8080", instance);
+ ServiceCombServer server = (ServiceCombServer) filter
+ .createEndpoint(context, Const.RESTFUL, "rest://localhost:8080", instance);
Assert.assertSame(instance, server.getInstance());
Assert.assertSame(trasport, server.getEndpoint().getTransport());
Assert.assertEquals("rest://localhost:8080", server.getEndpoint().getEndpoint());
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
index a9a4de5..07a1bdb 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
@@ -33,7 +33,7 @@ public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryF
}
@Override
- protected Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance) {
+ protected Object createEndpoint(DiscoveryContext context, String transportName, String endpoint, MicroserviceInstance instance) {
URIEndpointObject uri = new URIEndpointObject(endpoint);
return new Server(uri.getHostOrIp(), uri.getPort());
}
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
index 1f17df5..81d9351 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
@@ -33,7 +33,8 @@ public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryF
}
@Override
- protected Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance) {
+ protected Object createEndpoint(DiscoveryContext context, String transportName, String endpoint,
+ MicroserviceInstance instance) {
URIEndpointObject uri = new URIEndpointObject(endpoint);
return new Server(uri.getHostOrIp(), uri.getPort());
}
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
index dd471af..bba630a 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
@@ -56,7 +56,7 @@ public abstract class AbstractEndpointDiscoveryFilter implements DiscoveryFilter
continue;
}
- Object objEndpoint = createEndpoint(transportName, endpoint, instance);
+ Object objEndpoint = createEndpoint(context, transportName, endpoint, instance);
if (objEndpoint == null) {
continue;
}
@@ -79,5 +79,6 @@ public abstract class AbstractEndpointDiscoveryFilter implements DiscoveryFilter
protected abstract String findTransportName(DiscoveryContext context, DiscoveryTreeNode parent);
- protected abstract Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance);
+ protected abstract Object createEndpoint(DiscoveryContext context, String transportName, String endpoint,
+ MicroserviceInstance instance);
}
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java
index df3292c..c237baa 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java
@@ -42,7 +42,8 @@ public class TestAbstractTransportDiscoveryFilter {
}
@Override
- protected Object createEndpoint(String transportName, String endpoint, MicroserviceInstance instance) {
+ protected Object createEndpoint(DiscoveryContext context, String transportName, String endpoint,
+ MicroserviceInstance instance) {
if (disableCreate) {
return null;
}