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 2018/03/22 01:58:29 UTC

[incubator-servicecomb-java-chassis] branch master updated (973a483 -> f37cbfd)

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

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


    from 973a483  [SCB-420] change default HTTP header size limitation to 32K
     new 284ba7e  [SCB-416]For load balance rule configurations, we need provider service level configuration
     new 6936518  fix review comments and add more test cases
     new f37cbfd  simplify unit test case

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../servicecomb/loadbalance/Configuration.java     |  8 ++---
 .../servicecomb/loadbalance/LoadBalancer.java      | 11 ++++--
 .../loadbalance/LoadbalanceHandler.java            |  2 +-
 .../loadbalance/SessionStickinessRule.java         | 11 +++---
 .../servicecomb/loadbalance/TestConfiguration.java | 20 +++--------
 .../servicecomb/loadbalance/TestLoadBalancer.java  | 42 +++++++++++++++++++++-
 .../loadbalance/TestLoadbalanceHandler.java        |  6 ++--
 7 files changed, 69 insertions(+), 31 deletions(-)

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

[incubator-servicecomb-java-chassis] 02/03: fix review comments and add more test cases

Posted by li...@apache.org.
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/incubator-servicecomb-java-chassis.git

commit 6936518fe4152c6fd588137977f338ea937beaf1
Author: liubao <ba...@huawei.com>
AuthorDate: Tue Mar 20 09:25:53 2018 +0800

    fix review comments and add more test cases
---
 .../org/apache/servicecomb/loadbalance/Configuration.java     |  2 --
 .../org/apache/servicecomb/loadbalance/TestLoadBalancer.java  | 11 ++++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

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 b3abd2a..3a2043b 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
@@ -103,7 +103,6 @@ public final class Configuration {
 
   public int getSessionTimeoutInSeconds(String microservice) {
     final int defaultValue = 30;
-    // do not support MicroService level now
     String p = getStringProperty("30",
         PROP_ROOT + microservice + "." + SESSION_TIMEOUT_IN_SECONDS,
         PROP_ROOT + SESSION_TIMEOUT_IN_SECONDS);
@@ -116,7 +115,6 @@ public final class Configuration {
 
   public int getSuccessiveFailedTimes(String microservice) {
     final int defaultValue = 5;
-    // do not support MicroService level now
     String p = getStringProperty("5",
         PROP_ROOT + microservice + "." + SUCCESSIVE_FAILED_TIMES,
         PROP_ROOT + SUCCESSIVE_FAILED_TIMES);
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
index a62df19..1aa8775 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
@@ -150,7 +150,7 @@ public class TestLoadBalancer {
   }
   
   @Test
-  public void testLaodBalanceWithSessionSticknessRule() {
+  public void testLoadBalanceWithSessionSticknessRule() {
     SessionStickinessRule rule = new SessionStickinessRule();
     LoadBalancer lb = new LoadBalancer("lb1", rule, "service");
     Assert.assertEquals(lb.getMicroServiceName(), "service");
@@ -175,5 +175,14 @@ public class TestLoadBalancer {
     Utils.updateProperty("cse.loadbalance.service.SessionStickinessRule.sessionTimeoutInSeconds", 9);
     s = lb.chooseServer("test");
     Assert.assertEquals(server, s);
+    
+    Utils.updateProperty("cse.loadbalance.service.SessionStickinessRule.successiveFailedTimes", 5);
+    lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
+    lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
+    lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
+    lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
+    lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
+    s = lb.chooseServer("test");
+    Assert.assertEquals(server2, s);
   }
 }

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

[incubator-servicecomb-java-chassis] 01/03: [SCB-416]For load balance rule configurations, we need provider service level configuration

Posted by li...@apache.org.
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/incubator-servicecomb-java-chassis.git

commit 284ba7e55ef69a80de852258488a44b90415f870
Author: liubao <ba...@huawei.com>
AuthorDate: Mon Mar 19 20:17:00 2018 +0800

    [SCB-416]For load balance rule configurations, we need provider service level configuration
---
 .../servicecomb/loadbalance/Configuration.java     |  6 ++--
 .../servicecomb/loadbalance/LoadBalancer.java      | 11 +++++--
 .../loadbalance/LoadbalanceHandler.java            |  2 +-
 .../loadbalance/SessionStickinessRule.java         | 11 ++++---
 .../servicecomb/loadbalance/TestConfiguration.java | 20 +++---------
 .../servicecomb/loadbalance/TestLoadBalancer.java  | 32 ++++++++++++++++++-
 .../loadbalance/TestLoadbalanceHandler.java        |  6 ++--
 .../org/apache/servicecomb/loadbalance/Utils.java  | 37 ++++++++++++++++++++++
 8 files changed, 96 insertions(+), 29 deletions(-)

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 9e40cd7..b3abd2a 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
@@ -101,10 +101,11 @@ public final class Configuration {
         PROP_ROOT + PROP_RULE_STRATEGY_NAME);
   }
 
-  public int getSessionTimeoutInSeconds() {
+  public int getSessionTimeoutInSeconds(String microservice) {
     final int defaultValue = 30;
     // do not support MicroService level now
     String p = getStringProperty("30",
+        PROP_ROOT + microservice + "." + SESSION_TIMEOUT_IN_SECONDS,
         PROP_ROOT + SESSION_TIMEOUT_IN_SECONDS);
     try {
       return Integer.parseInt(p); // can be negative
@@ -113,10 +114,11 @@ public final class Configuration {
     }
   }
 
-  public int getSuccessiveFailedTimes() {
+  public int getSuccessiveFailedTimes(String microservice) {
     final int defaultValue = 5;
     // do not support MicroService level now
     String p = getStringProperty("5",
+        PROP_ROOT + microservice + "." + SUCCESSIVE_FAILED_TIMES,
         PROP_ROOT + SUCCESSIVE_FAILED_TIMES);
     try {
       return Integer.parseInt(p); // can be negative
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
index e108deb..ec65691 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
@@ -46,12 +46,15 @@ public class LoadBalancer extends AbstractLoadBalancer {
   // 以filter类名为Key
   private Map<String, ServerListFilterExt> filters;
 
-  public LoadBalancer(String name, IRule rule) {
+  private String microServiceName;
+
+  public LoadBalancer(String name, IRule rule, String microServiceName) {
     this.name = name;
     this.rule = rule;
-    this.rule.setLoadBalancer(this);
+    this.microServiceName = microServiceName;
     this.lbStats = new LoadBalancerStats(null);
     this.filters = new ConcurrentHashMap<>();
+    this.rule.setLoadBalancer(this);
   }
 
   public String getName() {
@@ -122,4 +125,8 @@ public class LoadBalancer extends AbstractLoadBalancer {
   public int getFilterSize() {
     return filters.size();
   }
+
+  public String getMicroServiceName() {
+    return microServiceName;
+  }
 }
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
index 2d9d928..fd22f8e 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
@@ -311,7 +311,7 @@ public class LoadbalanceHandler implements Handler {
 
   private LoadBalancer createLoadBalancer(String microserviceName, String loadBalancerName) {
     IRule rule = ExtensionsManager.createLoadBalancerRule(microserviceName);
-    LoadBalancer lb = new LoadBalancer(loadBalancerName, rule);
+    LoadBalancer lb = new LoadBalancer(loadBalancerName, rule, microserviceName);
 
     // we can change this implementation to ExtensionsManager in the future.
     loadServerListFilters(lb);
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
index 71c7709..5a3a2c2 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/SessionStickinessRule.java
@@ -51,6 +51,8 @@ public class SessionStickinessRule implements IRule {
 
   private static final int MILLI_COUNT_IN_SECOND = 1000;
 
+  private String microserviceName;
+
   public SessionStickinessRule() {
     triggerRule = new RoundRobinRule();
   }
@@ -92,9 +94,9 @@ public class SessionStickinessRule implements IRule {
   }
 
   private boolean isTimeOut() {
-    return Configuration.INSTANCE.getSessionTimeoutInSeconds() > 0
+    return Configuration.INSTANCE.getSessionTimeoutInSeconds(microserviceName) > 0
         && System.currentTimeMillis()
-            - this.lastAccessedTime > ((long) Configuration.INSTANCE.getSessionTimeoutInSeconds()
+            - this.lastAccessedTime > ((long) Configuration.INSTANCE.getSessionTimeoutInSeconds(microserviceName)
                 * MILLI_COUNT_IN_SECOND);
   }
 
@@ -105,8 +107,8 @@ public class SessionStickinessRule implements IRule {
     if (stats != null && stats.getServerStats() != null && stats.getServerStats().size() > 0) {
       ServerStats serverStats = stats.getSingleServerStat(lastServer);
       int successiveFaildCount = serverStats.getSuccessiveConnectionFailureCount();
-      if (Configuration.INSTANCE.getSuccessiveFailedTimes() > 0
-          && successiveFaildCount >= Configuration.INSTANCE.getSuccessiveFailedTimes()) {
+      if (Configuration.INSTANCE.getSuccessiveFailedTimes(microserviceName) > 0
+          && successiveFaildCount >= Configuration.INSTANCE.getSuccessiveFailedTimes(microserviceName)) {
         serverStats.clearSuccessiveConnectionFailureCount();
         return true;
       }
@@ -139,6 +141,7 @@ public class SessionStickinessRule implements IRule {
   @Override
   public void setLoadBalancer(ILoadBalancer lb) {
     this.lb = lb;
+    this.microserviceName = ((LoadBalancer) lb).getMicroServiceName();
   }
 
   @Override
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
index 5ba5042..703315d 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
@@ -47,20 +47,12 @@ public class TestConfiguration {
 
   @Test
   public void testFullConfigurationWithArgsString() {
-
-    Configuration.INSTANCE.getPolicy("test");
-    Configuration.INSTANCE.getRetryOnNext("test");
-    Configuration.INSTANCE.getRetryOnSame("test");
-    Configuration.INSTANCE.isRetryEnabled("test");
-    Configuration.INSTANCE.getSuccessiveFailedTimes();
-    Configuration.INSTANCE.getSessionTimeoutInSeconds();
-
     assertNull(Configuration.INSTANCE.getPolicy("test"));
     assertNotNull(Configuration.INSTANCE.getRetryOnNext("test"));
     assertNotNull(Configuration.INSTANCE.getRetryOnSame("test"));
     assertNotNull(Configuration.INSTANCE.isRetryEnabled("test"));
-    assertNotNull(Configuration.INSTANCE.getSuccessiveFailedTimes());
-    assertNotNull(Configuration.INSTANCE.getSessionTimeoutInSeconds());
+    assertNotNull(Configuration.INSTANCE.getSuccessiveFailedTimes("test"));
+    assertNotNull(Configuration.INSTANCE.getSessionTimeoutInSeconds("test"));
   }
 
   @Test
@@ -154,15 +146,11 @@ public class TestConfiguration {
 
   @Test
   public void testGetSuccessiveFailedTimes() {
-
-    Configuration.INSTANCE.getSuccessiveFailedTimes();
-    assertNotNull(Configuration.INSTANCE.getSuccessiveFailedTimes());
+    assertNotNull(Configuration.INSTANCE.getSuccessiveFailedTimes("test"));
   }
 
   @Test
   public void testGetSessionTimeoutInSeconds() {
-
-    Configuration.INSTANCE.getSessionTimeoutInSeconds();
-    assertNotNull(Configuration.INSTANCE.getSessionTimeoutInSeconds());
+    assertNotNull(Configuration.INSTANCE.getSessionTimeoutInSeconds("test"));
   }
 }
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
index d24318b..a62df19 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
@@ -32,10 +32,12 @@ import com.netflix.loadbalancer.AbstractLoadBalancer.ServerGroup;
 import com.netflix.loadbalancer.IRule;
 import com.netflix.loadbalancer.Server;
 
+import mockit.Deencapsulation;
+
 public class TestLoadBalancer {
   private IRule rule = Mockito.mock(IRule.class);
 
-  private LoadBalancer loadBalancer = new LoadBalancer("loadBalancerName", rule);
+  private LoadBalancer loadBalancer = new LoadBalancer("loadBalancerName", rule, "test");
 
   @Test
   public void name() {
@@ -146,4 +148,32 @@ public class TestLoadBalancer {
     Mockito.when(filter.getFilteredListOfServers(servers)).thenReturn(servers);
     Assert.assertEquals(servers, loadBalancer.getAllServers());
   }
+  
+  @Test
+  public void testLaodBalanceWithSessionSticknessRule() {
+    SessionStickinessRule rule = new SessionStickinessRule();
+    LoadBalancer lb = new LoadBalancer("lb1", rule, "service");
+    Assert.assertEquals(lb.getMicroServiceName(), "service");
+    Assert.assertEquals("service", Deencapsulation.getField(rule, "microserviceName"));
+    
+    List<Server> servers = new ArrayList<>();
+    Server server = new Server("host1", 80);
+    server.setAlive(true);
+    Server server2 = new Server("host2", 80);
+    server2.setAlive(true);
+    servers.add(server);
+    servers.add(server2);
+    lb.setServerList(servers);
+    
+    Server s = lb.chooseServer("test");
+    Assert.assertEquals(server2, s);
+    s = lb.chooseServer("test");
+    Assert.assertEquals(server2, s);
+    
+    long time =  Deencapsulation.getField(rule, "lastAccessedTime");
+    Deencapsulation.setField(rule, "lastAccessedTime", time - 1000 * 10);
+    Utils.updateProperty("cse.loadbalance.service.SessionStickinessRule.sessionTimeoutInSeconds", 9);
+    s = lb.chooseServer("test");
+    Assert.assertEquals(server, s);
+  }
 }
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 5930335..85c91a7 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
@@ -76,7 +76,7 @@ public class TestLoadbalanceHandler {
 
   Map<String, LoadBalancer> loadBalancerMap = Deencapsulation.getField(handler, "loadBalancerMap");
 
-  private LoadBalancer loadBalancer = new LoadBalancer("loadBalancerName", rule);
+  private LoadBalancer loadBalancer = new LoadBalancer("loadBalancerName", rule, "test");
 
   @Injectable
   Invocation invocation;
@@ -238,12 +238,12 @@ public class TestLoadbalanceHandler {
     Invocation invocation = Mockito.mock(Invocation.class);
     Mockito.when(invocation.getMicroserviceName()).thenReturn("test");
     LoadbalanceHandler lbHandler = new LoadbalanceHandler();
-    LoadBalancer myLB = new LoadBalancer("loadBalancerName", rule);
+    LoadBalancer myLB = new LoadBalancer("loadBalancerName", rule, "test");
     lbHandler.setIsolationFilter(myLB, "abc");
     Assert.assertEquals(1, myLB.getFilterSize());
 
     Mockito.when(invocation.getMicroserviceName()).thenReturn("abc");
-    myLB = new LoadBalancer("loadBalancerName", rule);
+    myLB = new LoadBalancer("loadBalancerName", rule, "test");
     lbHandler.setIsolationFilter(myLB, "abc");
     myLB.setInvocation(invocation);
 
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java
new file mode 100644
index 0000000..a00a93d
--- /dev/null
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.loadbalance;
+
+import java.lang.reflect.Method;
+
+import org.springframework.util.ReflectionUtils;
+
+import com.netflix.config.DynamicProperty;
+
+public class Utils {
+  private static Method updatePropertyMethod =
+      ReflectionUtils.findMethod(DynamicProperty.class, "updateProperty", String.class, Object.class);
+
+  static {
+    updatePropertyMethod.setAccessible(true);
+  }
+
+  public static void updateProperty(String key, Object value) {
+    ReflectionUtils.invokeMethod(updatePropertyMethod, null, key, value);
+  }
+}

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

[incubator-servicecomb-java-chassis] 03/03: simplify unit test case

Posted by li...@apache.org.
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/incubator-servicecomb-java-chassis.git

commit f37cbfdf829197504beeec5a85929ef1e7bcf903
Author: liubao <ba...@huawei.com>
AuthorDate: Thu Mar 22 09:04:45 2018 +0800

    simplify unit test case
---
 .../servicecomb/loadbalance/TestLoadBalancer.java  |  5 +--
 .../org/apache/servicecomb/loadbalance/Utils.java  | 37 ----------------------
 2 files changed, 3 insertions(+), 39 deletions(-)

diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
index 1aa8775..1ebce0e 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertNotNull;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.loadbalance.filter.SimpleTransactionControlFilter;
 import org.apache.servicecomb.loadbalance.filter.TransactionControlFilter;
 import org.junit.Assert;
@@ -172,11 +173,11 @@ public class TestLoadBalancer {
     
     long time =  Deencapsulation.getField(rule, "lastAccessedTime");
     Deencapsulation.setField(rule, "lastAccessedTime", time - 1000 * 10);
-    Utils.updateProperty("cse.loadbalance.service.SessionStickinessRule.sessionTimeoutInSeconds", 9);
+    ArchaiusUtils.setProperty("cse.loadbalance.service.SessionStickinessRule.sessionTimeoutInSeconds", 9);
     s = lb.chooseServer("test");
     Assert.assertEquals(server, s);
     
-    Utils.updateProperty("cse.loadbalance.service.SessionStickinessRule.successiveFailedTimes", 5);
+    ArchaiusUtils.setProperty("cse.loadbalance.service.SessionStickinessRule.successiveFailedTimes", 5);
     lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
     lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
     lb.getLoadBalancerStats().incrementSuccessiveConnectionFailureCount(s);
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java
deleted file mode 100644
index a00a93d..0000000
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/Utils.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.loadbalance;
-
-import java.lang.reflect.Method;
-
-import org.springframework.util.ReflectionUtils;
-
-import com.netflix.config.DynamicProperty;
-
-public class Utils {
-  private static Method updatePropertyMethod =
-      ReflectionUtils.findMethod(DynamicProperty.class, "updateProperty", String.class, Object.class);
-
-  static {
-    updatePropertyMethod.setAccessible(true);
-  }
-
-  public static void updateProperty(String key, Object value) {
-    ReflectionUtils.invokeMethod(updatePropertyMethod, null, key, value);
-  }
-}

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