You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/02/14 13:10:05 UTC
[incubator-servicecomb-java-chassis] 03/04: remove service count
protection
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 14c57ba7721ba7c72cbc435ceef3f3e64acb622e
Author: bao.liu <ba...@huawei.com>
AuthorDate: Fri Feb 9 09:32:14 2018 +0800
remove service count protection
---
.../serviceregistry/consumer/MicroserviceManager.java | 19 -------------------
.../consumer/MicroserviceVersions.java | 14 +++-----------
.../consumer/TestMicroserviceManager.java | 5 ++---
3 files changed, 5 insertions(+), 33 deletions(-)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
index cc3fde5..a94ec1e 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
@@ -17,10 +17,6 @@
package org.apache.servicecomb.serviceregistry.consumer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
import java.util.Map;
import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
@@ -55,21 +51,6 @@ public class MicroserviceManager {
if (!microserviceVersions.isValidated()) {
// remove this microservice if it does not exist or not registered in order to get it back when access it again
versionsByName.remove(microserviceName);
- } else {
- microserviceVersions.updateLastAccessTime();
- }
- if (versionsByName.size() >= MAX_NUM_OF_MICROSERVICES) {
- // do clean up for cache so many things
- List<MicroserviceVersions> entries = new ArrayList<>(versionsByName.size());
- versionsByName.values().forEach((item) -> {
- entries.add(item);
- });
- Collections.sort(entries, Comparator.comparingLong(MicroserviceVersions::getLastAccessedTime));
- entries.forEach((item) -> {
- if (versionsByName.size() > MAX_NUM_OF_MICROSERVICES / 2) {
- versionsByName.remove(item.getMicroserviceName());
- }
- });
}
return microserviceVersions;
}
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
index 5616aa2..0b818df 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
@@ -63,7 +63,7 @@ public class MicroserviceVersions {
// only pendingPullCount is 0, then do a real pull
private AtomicInteger pendingPullCount = new AtomicInteger();
- private long lastAccessedTime = -1;
+ private boolean validated = false;
public MicroserviceVersions(AppManager appManager, String appId, String microserviceName) {
this.appManager = appManager;
@@ -77,16 +77,8 @@ public class MicroserviceVersions {
appManager.getEventBus().register(this);
}
- public void updateLastAccessTime() {
- this.lastAccessedTime = System.currentTimeMillis();
- }
-
public boolean isValidated() {
- return this.lastAccessedTime != -1;
- }
-
- public long getLastAccessedTime() {
- return this.lastAccessedTime;
+ return validated;
}
public String getAppId() {
@@ -136,7 +128,7 @@ public class MicroserviceVersions {
protected void safeSetInstances(List<MicroserviceInstance> pulledInstances, String rev) {
try {
setInstances(pulledInstances, rev);
- updateLastAccessTime();
+ validated = true;
} catch (Throwable e) {
LOGGER.error("Failed to setInstances, appId={}, microserviceName={}.",
getAppId(),
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceManager.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceManager.java
index 046621b..c87504c 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceManager.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceManager.java
@@ -108,12 +108,11 @@ public class TestMicroserviceManager {
}
}
- Assert.assertEquals(505, cachedVersions.size());
+ Assert.assertEquals(1005, cachedVersions.size());
Assert.assertEquals("msName1004", cachedVersions.get("msName1004").getMicroserviceName());
Assert.assertEquals("msName1000", cachedVersions.get("msName1000").getMicroserviceName());
Assert.assertEquals("msName500", cachedVersions.get("msName500").getMicroserviceName());
- Assert.assertEquals(null, cachedVersions.get("msName0"));
- Assert.assertEquals(null, cachedVersions.get("msName499"));
+ Assert.assertEquals("msName0", cachedVersions.get("msName0").getMicroserviceName());
}
@Test
--
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.