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 fe7ce5b  [#1467]use ThreadLocalRandom instead of Random
fe7ce5b is described below

commit fe7ce5b9be3ac030ec9d4896f7a03ab67f6de22b
Author: liubao <[email protected]>
AuthorDate: Mon Feb 3 10:44:29 2020 +0800

    [#1467]use ThreadLocalRandom instead of Random
---
 .../java/org/apache/servicecomb/loadbalance/RandomRuleExt.java    | 6 ++----
 .../servicecomb/loadbalance/WeightedResponseTimeRuleExt.java      | 8 +++-----
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RandomRuleExt.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RandomRuleExt.java
index 6671d81..5f8d26c 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RandomRuleExt.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RandomRuleExt.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.loadbalance;
 
 import java.util.List;
-import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
 
 import org.apache.servicecomb.core.Invocation;
 
@@ -26,14 +26,12 @@ import org.apache.servicecomb.core.Invocation;
  * A random rule.
  */
 public class RandomRuleExt implements RuleExt {
-  private Random random = new Random();
-
   @Override
   public ServiceCombServer choose(List<ServiceCombServer> servers, Invocation 
invocation) {
     if (servers.isEmpty()) {
       return null;
     }
-    int index = Math.abs(random.nextInt()) % servers.size();
+    int index = Math.abs(ThreadLocalRandom.current().nextInt()) % 
servers.size();
     return servers.get(index);
   }
 }
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
index 529c0a3..055f75b 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.loadbalance;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
 
 import org.apache.servicecomb.core.Invocation;
 
@@ -34,8 +34,6 @@ public class WeightedResponseTimeRuleExt extends 
RoundRobinRuleExt {
 
   private static final int RANDOM_PERCENT = 10;
 
-  private Random random = new Random();
-
   private LoadBalancer loadBalancer;
 
   private double totalWeightsCache = 0d;
@@ -55,7 +53,7 @@ public class WeightedResponseTimeRuleExt extends 
RoundRobinRuleExt {
       for (int i = 0; i < stats.size() - 1; i++) {
         weights.add(finalTotal - stats.get(i));
       }
-      double ran = random.nextDouble() * finalTotal * (servers.size() - 1);
+      double ran = ThreadLocalRandom.current().nextDouble() * finalTotal * 
(servers.size() - 1);
       for (int i = 0; i < weights.size(); i++) {
         ran -= weights.get(i);
         if (ran < 0) {
@@ -72,7 +70,7 @@ public class WeightedResponseTimeRuleExt extends 
RoundRobinRuleExt {
       return doCalculateTotalWeights(servers);
     }
     // 10% possibilities to use weighed response rule when the normal access 
is very fast.
-    if (random.nextInt(RANDOM_PERCENT) == 0) {
+    if (ThreadLocalRandom.current().nextInt(RANDOM_PERCENT) == 0) {
       return doCalculateTotalWeights(servers);
     } else {
       return new ArrayList<>();

Reply via email to