You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by wu...@apache.org on 2018/04/27 06:21:20 UTC

[incubator-servicecomb-java-chassis] branch master updated: [SCB-520] resolve service with env re-registered will fail

This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new e4c47e9  [SCB-520] resolve service with env re-registered will fail
e4c47e9 is described below

commit e4c47e96e19003a58d57ee39af90083369ea6355
Author: weichao666 <we...@huawei.com>
AuthorDate: Thu Apr 26 16:09:49 2018 +0800

    [SCB-520] resolve service with env re-registered will fail
---
 .../client/LocalServiceRegistryClientImpl.java             |  2 +-
 .../serviceregistry/client/ServiceRegistryClient.java      |  2 +-
 .../client/http/ServiceRegistryClientImpl.java             |  5 +++--
 .../serviceregistry/task/MicroserviceRegisterTask.java     |  3 ++-
 .../client/LocalServiceRegistryClientImplTest.java         | 10 +++++-----
 .../serviceregistry/client/http/TestClientHttp.java        |  3 ++-
 .../client/http/TestServiceRegistryClientImpl.java         |  3 ++-
 .../serviceregistry/task/TestMicroserviceRegisterTask.java | 14 +++++++-------
 8 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
index 2cb228f..c42b991 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
@@ -146,7 +146,7 @@ public class LocalServiceRegistryClientImpl implements ServiceRegistryClient {
   }
 
   @Override
-  public String getMicroserviceId(String appId, String microserviceName, String strVersionRule) {
+  public String getMicroserviceId(String appId, String microserviceName, String strVersionRule, String environment) {
     VersionRule versionRule = VersionRuleUtils.getOrCreate(strVersionRule);
     Microservice latest = findLatest(appId, microserviceName, versionRule);
     return latest != null ? latest.getServiceId() : null;
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
index 2cf20b9..1ac9b67 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
@@ -40,7 +40,7 @@ public interface ServiceRegistryClient {
    *
    * 获取微服务唯一标识
    */
-  String getMicroserviceId(String appId, String microserviceName, String versionRule);
+  String getMicroserviceId(String appId, String microserviceName, String versionRule, String environment);
 
   /**
    *
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
index 6173a17..3b42184 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
@@ -229,7 +229,7 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
   }
 
   @Override
-  public String getMicroserviceId(String appId, String microserviceName, String versionRule) {
+  public String getMicroserviceId(String appId, String microserviceName, String versionRule, String environment) {
     Holder<GetExistenceResponse> holder = new Holder<>();
     IpPort ipPort = ipPortManager.getAvailableAddress();
 
@@ -239,7 +239,8 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
         new RequestParam().addQueryParam("type", "microservice")
             .addQueryParam("appId", appId)
             .addQueryParam("serviceName", microserviceName)
-            .addQueryParam("version", versionRule),
+            .addQueryParam("version", versionRule)
+            .addQueryParam("env", environment),
         syncHandler(countDownLatch, GetExistenceResponse.class, holder));
     try {
       countDownLatch.await();
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
index a0610f4..b029d62 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
@@ -57,7 +57,8 @@ public class MicroserviceRegisterTask extends AbstractRegisterTask {
     LOGGER.info("running microservice register task.");
     String serviceId = srClient.getMicroserviceId(microservice.getAppId(),
         microservice.getServiceName(),
-        microservice.getVersion());
+        microservice.getVersion(),
+        microservice.getEnvironment());
     if (!StringUtils.isEmpty(serviceId)) {
       // 已经注册过了,不需要重新注册
       microservice.setServiceId(serviceId);
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
index c841f25..ea416d6 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
@@ -79,20 +79,20 @@ public class LocalServiceRegistryClientImplTest {
   public void getMicroserviceId_appNotMatch() {
     mockRegisterMicroservice("otherApp", microserviceName, "1.0.0");
 
-    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "1.0.0"));
+    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "1.0.0", ""));
   }
 
   @Test
   public void getMicroserviceId_nameNotMatch() {
     mockRegisterMicroservice(appId, "otherName", "1.0.0");
 
-    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "1.0.0"));
+    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "1.0.0", ""));
   }
 
   @Test
   public void getMicroserviceId_versionNotMatch() {
     mockRegisterMicroservice(appId, microserviceName, "1.0.0");
-    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "2.0.0"));
+    Assert.assertNull(registryClient.getMicroserviceId(appId, microserviceName, "2.0.0", ""));
   }
 
   @Test
@@ -100,7 +100,7 @@ public class LocalServiceRegistryClientImplTest {
     Microservice v2 = mockRegisterMicroservice(appId, microserviceName, "2.0.0");
     mockRegisterMicroservice(appId, microserviceName, "1.0.0");
 
-    String serviceId = registryClient.getMicroserviceId(appId, microserviceName, DefinitionConst.VERSION_RULE_LATEST);
+    String serviceId = registryClient.getMicroserviceId(appId, microserviceName, DefinitionConst.VERSION_RULE_LATEST, "");
     Assert.assertEquals(v2.getServiceId(), serviceId);
   }
 
@@ -109,7 +109,7 @@ public class LocalServiceRegistryClientImplTest {
     Microservice v1 = mockRegisterMicroservice(appId, microserviceName, "1.0.0");
     mockRegisterMicroservice(appId, microserviceName, "2.0.0");
 
-    String serviceId = registryClient.getMicroserviceId(appId, microserviceName, "1.0.0");
+    String serviceId = registryClient.getMicroserviceId(appId, microserviceName, "1.0.0", "");
     Assert.assertEquals(v1.getServiceId(), serviceId);
   }
 
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
index 7aafdca..96f2daf 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
@@ -92,7 +92,8 @@ public class TestClientHttp {
     Assert.assertEquals(null,
         oClient.getMicroserviceId(microservice.getAppId(),
             microservice.getServiceName(),
-            microservice.getVersion()));
+            microservice.getVersion(),
+            microservice.getEnvironment()));
     Assert.assertEquals(null,
         oClient.heartbeat(microservice.getServiceId(),
             microservice.getInstance().getInstanceId()));
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
index 925f77c..f3c8f3f 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
@@ -108,7 +108,8 @@ public class TestServiceRegistryClientImpl {
     Assert.assertEquals(null,
         oClient.getMicroserviceId(microservice.getAppId(),
             microservice.getServiceName(),
-            microservice.getVersion()));
+            microservice.getVersion(),
+            microservice.getEnvironment()));
     Assert.assertThat(oClient.getAllMicroservices().isEmpty(), is(true));
     Assert.assertEquals(null, oClient.registerMicroservice(microservice));
     Assert.assertEquals(null, oClient.getMicroservice("microserviceId"));
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
index 736b759..a59acfd 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
@@ -62,7 +62,7 @@ public class TestMicroserviceRegisterTask {
   public void testNewRegisterFailed(@Mocked ServiceRegistryClient srClient) {
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = null;
         srClient.registerMicroservice((Microservice) any);
         result = null;
@@ -82,7 +82,7 @@ public class TestMicroserviceRegisterTask {
   public void testNewRegisterSuccess(@Mocked ServiceRegistryClient srClient) {
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = null;
         srClient.registerMicroservice((Microservice) any);
         result = "serviceId";
@@ -108,7 +108,7 @@ public class TestMicroserviceRegisterTask {
     microservice.addSchema("exist", "");
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = null;
         srClient.registerMicroservice((Microservice) any);
         result = "serviceId";
@@ -136,7 +136,7 @@ public class TestMicroserviceRegisterTask {
     microservice.addSchema("s1", "");
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = null;
         srClient.registerMicroservice((Microservice) any);
         result = "serviceId";
@@ -161,7 +161,7 @@ public class TestMicroserviceRegisterTask {
   public void testAlreadyRegisteredSchemaIdSetMatch(@Mocked ServiceRegistryClient srClient) {
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = "serviceId";
         srClient.getMicroservice(anyString);
         result = microservice;
@@ -188,7 +188,7 @@ public class TestMicroserviceRegisterTask {
 
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = "serviceId";
         srClient.getMicroservice(anyString);
         result = otherMicroservice;
@@ -214,7 +214,7 @@ public class TestMicroserviceRegisterTask {
 
     new Expectations() {
       {
-        srClient.getMicroserviceId(anyString, anyString, anyString);
+        srClient.getMicroserviceId(anyString, anyString, anyString, anyString);
         result = "serviceId";
         srClient.getMicroservice(anyString);
         result = null;

-- 
To stop receiving notification emails like this one, please contact
wujimin@apache.org.